【发布时间】:2011-09-14 02:30:36
【问题描述】:
对于 iPhone/iPad 等移动设备,视觉视口和布局视口有什么区别?
网上找了很多资源,还是不太清楚。
【问题讨论】:
标签: html css ipad mobile-website viewport
对于 iPhone/iPad 等移动设备,视觉视口和布局视口有什么区别?
网上找了很多资源,还是不太清楚。
【问题讨论】:
标签: html css ipad mobile-website viewport
视觉视口是当前在屏幕上显示的页面部分。
布局视口可以比视觉视口宽得多,并且包含在屏幕上出现和不出现的元素。
将布局视口想象成一个不会改变大小或形状的大图像。现在假设您有一个较小的框架,您可以通过它查看大图像。小框架被不透明的材料包围,除了大图像的一部分外,您无法看到所有内容。您可以通过框架看到的大图像部分是视觉视口。您可以在握住相框的同时远离大图像(缩小)以一次查看整个图像,或者您可以靠近(放大)以仅查看一部分。您也可以更改框架的方向,但大图像(布局视口)的大小和形状永远不会改变。
有关此问题的详细处理方法,请参阅:http://www.quirksmode.org/mobile/viewports2.html
【讨论】:
找到了对这两者的一个很好的解释here。
总结:
视觉视口
视觉视口是当前在屏幕上显示的页面部分。用户可以滚动来改变他看到的页面部分,或者缩放来改变可视视口的大小。
布局视口
但是,CSS 布局,尤其是百分比宽度,是相对于布局视口计算的,它比视觉视口宽得多。
因此,元素最初采用布局视口的宽度,并且您的 CSS 被解释为屏幕明显比手机屏幕宽。这可确保您网站的布局与在桌面浏览器上一样。
布局视口有多宽?这因浏览器而异。 Safari iPhone 使用 980px、Opera 850px、Android WebKit 800px 和 IE 974px。
简而言之,布局视口一般是屏幕一直放大时的视口宽度。
【讨论】:
布局视口
无论方向或缩放级别如何,其测量值始终相同,仅取决于设备/浏览器窗口。
视觉视口
它会有所不同(例如缩放时)。这是在任何给定点实际显示在屏幕上的页面部分。
两种布局的视频示例
布局视口:小地图中的绿色区域。
视觉视口:小地图中的红色框。
Layout viewport vs visual viewport (video)
在移动/平板设备上
在移动设备上,默认情况下事情可能会稍微复杂一些,因为为了提供“完整的网络”体验,许多移动设备会返回虚假的更高布局视口尺寸。
例如,默认情况下经典 iPhone 报告的 布局视口 宽度为 980 像素。这意味着,如果您在 iPhone 上创建一个 320 像素的元素,它只会填满大约三分之一的屏幕空间。
但是,这种机制对于使用媒体查询针对窄屏幕进行优化的页面来说并不是那么好。
当我们创建响应式网站时,使用视口元标记非常有用,它可以让我们控制许多设备的缩放和布局视口(使用真实尺寸,而不是虚假报告)。
<meta name="*viewport*" content="*width=device-width*, initial-scale=1, maximum-scale=1" />
视口元标记示例
提示:如果您使用手机或平板电脑浏览此页面,您可以 点击下面的两个链接查看区别。
【讨论】: