什么是 Viewport?
viewport 是用户网页的可视区域。
viewport 翻译为中文可以叫做"视区"。
问题:
先随便写个网页。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <!--<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />--> <!-- width:控制 viewport 的大小,可以指定的一个值,如 600,或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素)。 height:和 width 相对应,指定高度。 initial-scale:初始缩放比例,也即是当页面第一次 load 的时候缩放比例。 maximum-scale:允许用户缩放到的最大比例。 minimum-scale:允许用户缩放到的最小比例。 user-scalable:用户是否可以手动缩放。 --> <title></title> <style type="text/css"> *{padding: 0;margin: 0;} #box { background: red; /*width: 800px;*/ } /*手机端参照的是viewport,默认980px,所以手机端viewport等于设备大小*/ @media only screen and (min-width: 800px) { #box{ background: blue; } } </style> </head> <body> <div id="box">viewport: viewport 是用户网页的可视区域。 viewport 翻译为中文可以叫做"视区"。 手机浏览器是把页面放在一个虚拟的"窗口"(viewport)中,通常这个虚拟的"窗口"(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分。 </div> <hr /> <div id="box2"> <input type="text" /> - <input type="button" value="确定" /> </div> <h1>标题</h1> </body> </html>
在网页中打开
但在手机中打开,这里用Chrome调试的方法打开
明显这个网页不适合手机端。
解決:
手机浏览器是把页面放在一个虚拟的"窗口"(viewport)中,通常这个虚拟的"窗口"(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分。
也就是手机大小虽然差不多是380px,但手机会假装自己有980px,这样在看没有手机优化的页面可以尽可能显示更多的内容。
在<head>中添加,一般来讲是固定的。
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
参数介绍:
- width:控制 viewport 的大小,可以指定的一个值,如 600,或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素)。
- height:和 width 相对应,指定高度。
- initial-scale:初始缩放比例,也即是当页面第一次 load 的时候缩放比例。
- maximum-scale:允许用户缩放到的最大比例。
- minimum-scale:允许用户缩放到的最小比例。
- user-scalable:用户是否可以手动缩放。
最后再结合media使用。就解决了手机查看的问题,不过像baidu这样的会使用两套代码以便更好的适合手机端查看。