zoukankan      html  css  js  c++  java
  • 响应式布局下篇

    开发移动端页面

     
       

     

     

    移动端的视口宽度问题

    视口是指浏览器的可视区域,移动端的视口到底是多宽呢?

    现在市面上的大部分手机,比如iphone X,它的默认视口宽度为980px,而一个iphone X的屏幕宽度仅仅为375px。看到问题了吗?一个宽度只有375像素的手机,却能够显示宽度为980像素的网 页,自然而然,网页会被缩小。

     
       

    我们可以使用谷歌浏览器的移动端调试工具,来访问百度的搜索结果,可以看到网页明显被缩小了,而且页面宽度定格在980px。

    面对这样的情况怎么办呢?我们当然希望手机的视口宽度和实际的屏幕宽度保持一致,就像PC端那样。好在HTML给了我们设置移动端视口宽度的能力,只需要在 head 元素中加入 meta 元素,即可设置移动端视口宽度(默认980px),代码格式如下:

     
       

    然而,不同手机的实际宽度是不一样的,并不全都是iphone X的尺寸(375px),这又如何处理呢?

    好在HTML给我们提供了一个关键字 device-width ,该关键是读取当前移动设备的宽度。因此, 我们只需要使用下面的代码,即可让所有移动设备的视口宽度和其自身的宽度相等。

     
       

    这样就解决了移动端视口宽度和自身宽度不一致的问题。

    移动端误触造成的缩放问题

    当用户用手指在移动端滑动网页的时候,手机往往提供下面的功能:

    1. 快速双击,可放大页面
    2. 双指收放,可放大缩小页面

    由于移动端误触较多,而我们的网页本来就是专门为移动端开发的,无论是尺寸还是各种样式,在默认的情况下已经非常合适了,根本不需要用户去缩放网页(你会发现,几乎所有app中的页面, 都是不允许缩放的),因此,禁止用户对网页进行缩放是一个不错的选择。

    具体的做法是在上一节中的 meta 元素中继续加入内容:

     
       

    在上面这句代码中,出现了这一段代码: initial-scale=1.0, minimum-scale=1.0, maximum- scale=1.0, user-scalable=0 ,它们的意思分别是:

    initial-scale=1.0 :初始缩放比例为1.0(原始大小),这句代码的目的还不是放置用户缩放的,书写上它有其他复杂的原因,不过本文不涉及

    minimum-scale=1.0 :网页最小的缩小比例为1.0(原始大小),设置这句代码的目的是为了放置某些程序(比如JS)无意中修改了网页的缩小比例

    maximum-scale=1.0 :网页最大的放大比例为1.0(原始大小),设置这句代码的目的是为了放置某些程序(比如JS)无意中修改了网页的放大比例

    user-scalable=0 :这句代码才是不允许用户对网页进行缩放

    这样一来,就解决了用户误触的问题。

    移动端元素的尺寸问题

    我们先看两张移动端网页的对比图:

    上面的对比图,是同一个网页在不同尺寸手机中的效果。仔细观察,你会发现,网页中的很多元素,随着视口的宽度变大,尺寸也会随之变大,无论是字体、高度、间隙都有这样的特点。

    这样做的目的,是为了保证网页元素在不同尺寸的移动端中,显示最优的尺寸。

    这样一来,就要求我们在开发移动端的页面时,当遇到字体大小、宽高、margin、padding等尺寸类的属性时,不能设置固定的像素值。

    不能设置像素值,那要设置什么值呢?百分比吗?

    仔细思考,百分比也不行,比如字体设置为百分比,就以为着是相对于父元素的字体大小,只要父元素字体大小不变化,无论页面视口是多宽,字体大小不会发生任何变化。而且百分比计算起来极其繁琐,显然不是合适的选择。

    考虑我们的需求,我们是要实现尺寸随着视口宽度的变化而变化于是,聪明的开发者想出这样一种办法。

    1.  首先,写一段JS代码,应用到网页

     
       

     

     
       

     

     

    替换之后,代码就变成了这样的格式:

     
       
  • 相关阅读:
    js 中常用的方法
    js中this的四种调用模式
    JS面向对象的几种写法
    js 中的算法题,那些经常看到的
    web页面的回流,认识与避免
    js中的预加载与懒加载(延迟加载)
    Web安全测试学习笔记-DVWA-存储型XSS
    Web安全测试学习笔记-DVWA-图片上传
    Web安全测试学习笔记-DVWA-盲注(使用sqlmap)
    Web安全测试学习笔记-DVWA-SQL注入-1
  • 原文地址:https://www.cnblogs.com/jrzqdlgdx/p/11239787.html
Copyright © 2011-2022 走看看