什么是 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这样的会使用两套代码以便更好的适合手机端查看。