开发移动端页面浏览器
视口是指浏览器的可视区域,移动端的视口究竟是多宽呢?app
咱们可使用谷歌浏览器的移动端调试工具,来访问百度的搜索结果,能够看到网页明显被缩小了,并且页面宽度定格在980px。iphone
面对这样的状况怎么办呢?咱们固然但愿手机的视口宽度和实际的屏幕宽度保持一致,就像PC端那样。好在HTML给了咱们设置移动端视口宽度的能力,只须要在 head 元素中加入 meta 元素,便可设置移动端视口宽度(默认980px),代码格式以下:工具
然而,不一样手机的实际宽度是不同的,并不全都是iphone X的尺寸(375px),这又如何处理呢?字体
好在HTML给咱们提供了一个关键字 device-width ,该关键是读取当前移动设备的宽度。所以, 咱们只须要使用下面的代码,便可让全部移动设备的视口宽度和其自身的宽度相等。spa
这样就解决了移动端视口宽度和自身宽度不一致的问题。scala
移动端误触形成的缩放问题调试
当用户用手指在移动端滑动网页的时候,手机每每提供下面的功能:ip
因为移动端误触较多,而咱们的网页原本就是专门为移动端开发的,不管是尺寸仍是各类样式,在默认的状况下已经很是合适了,根本不须要用户去缩放网页(你会发现,几乎全部app中的页面, 都是不容许缩放的),所以,禁止用户对网页进行缩放是一个不错的选择。ci
具体的作法是在上一节中的 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代码,应用到网页