We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
viewport指的是视口,他是浏览器或app中webview显示页面的区域。一般来讲PC端的视口指的是浏览器窗口区域,而移动端就有点复杂,它有三个视口:
它是由浏览器提出的一种虚拟的布局视口,用来解决页面在手机上显示的问题。这种视口可以通过<meta>标签设置viewport来改变。移动设备上的浏览器都会把自己默认的viewport设为980px或1024px(也可能是其它值,这个是由设备自己决定的),但带来的后果就是浏览器会出现横向滚动条,因为浏览器可视区域的宽度是比这个默认的viewport的宽度要小的。
<meta>
viewport
我们可以通过document.documentElement.clientWidth来获取布局视口大小
document.documentElement.clientWidth
它指的是浏览器的可视区域,也就是我们在移动端设备上能够看到的区域。默认与当前浏览器窗口大小相等,当用户对浏览器进行缩放时,不会改变布局视口的大小,但会改变视觉窗口的大小。
我们可以通过window.innerWidth来获取视觉视口大小。
window.innerWidth
理想中的视口。这个概念最早由苹果提出,其他浏览器厂商陆续跟进,目的是解决在布局视口下页面元素过小的问题,显示在理想视口中的页面具有最理想的宽度,用户无需进行缩放。所谓理想视口,即页面绘制区域可以完美适配设备宽度的视口大小,不需要出现滚动条即可正常查看网站的所有内容,且文字图片清晰,如所有iphone的理想视口宽度都为320px,安卓设备的理想视口有320px、360px等等。
当页面缩放比例为100%时,理想视口 = 视觉视口。
100%
理想视口 = 视觉视口
我们可以通过screen.width来获取理想视口大小。
screen.width
对于移动端页面,可以采用<meta>标签来配置视口大小和缩放等。
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
device-width
device-height
0.0~10
no或者yes
这里需要注意的是viewport只对移动端浏览器有效,对PC端浏览器是无效的。
为了让移动端页面获得更好的显示效果,我们必须让布局视口、视觉视口都尽可能等于理想视口,所以我们一般会设置width=device-width,这就相当于让布局视口等于理想视口;设置initial-scale=1.0,相当于让视觉视口等于理想视口;
width=device-width
initial-scale=1.0
上面提到width可以决定布局视口的宽度,实际上它并不是布局视口的唯一决定性因素,设置initial-scale也有肯能影响到布局视口,因为布局视口宽度取的是width和视觉视口宽度的最大值。
width
initial-scale
例如:若手机的理想视口宽度为400px,设置width=device-width,initial-scale=2,此时视觉视口宽度 = 理想视口宽度 / initial-scale即200px,布局视口取两者最大值即device-width 400px。
400px
initial-scale=2
视觉视口宽度 = 理想视口宽度 / initial-scale
200px
若设置width=device-width,initial-scale=0.5,此时视觉视口宽度 = 理想视口宽度 / initial-scale即800px,布局视口取两者最大值即800px。
initial-scale=0.5
800px
推荐阅读超详细讲解H5移动端适配
The text was updated successfully, but these errors were encountered:
No branches or pull requests
视口viewport
viewport指的是视口,他是浏览器或app中webview显示页面的区域。一般来讲PC端的视口指的是浏览器窗口区域,而移动端就有点复杂,它有三个视口:
布局视口(layout viewport)
它是由浏览器提出的一种虚拟的布局视口,用来解决页面在手机上显示的问题。这种视口可以通过
<meta>
标签设置viewport
来改变。移动设备上的浏览器都会把自己默认的viewport设为980px或1024px(也可能是其它值,这个是由设备自己决定的),但带来的后果就是浏览器会出现横向滚动条,因为浏览器可视区域的宽度是比这个默认的viewport的宽度要小的。我们可以通过
document.documentElement.clientWidth
来获取布局视口大小视觉视口(visual viewport)
它指的是浏览器的可视区域,也就是我们在移动端设备上能够看到的区域。默认与当前浏览器窗口大小相等,当用户对浏览器进行缩放时,不会改变布局视口的大小,但会改变视觉窗口的大小。
我们可以通过
window.innerWidth
来获取视觉视口大小。理想视口(ideal viewport)
理想中的视口。这个概念最早由苹果提出,其他浏览器厂商陆续跟进,目的是解决在布局视口下页面元素过小的问题,显示在理想视口中的页面具有最理想的宽度,用户无需进行缩放。所谓理想视口,即页面绘制区域可以完美适配设备宽度的视口大小,不需要出现滚动条即可正常查看网站的所有内容,且文字图片清晰,如所有iphone的理想视口宽度都为320px,安卓设备的理想视口有320px、360px等等。
当页面缩放比例为
100%
时,理想视口 = 视觉视口
。我们可以通过
screen.width
来获取理想视口大小。meta viewport
对于移动端页面,可以采用
<meta>
标签来配置视口大小和缩放等。device-width
。device-height
这样的关键字,表示设备的实际高度,一般不会设置视窗的高度,这样内容超出的话采用滚动方式浏览。0.0~10
的数字,initial-scale=1表示不进行缩放,视窗刚好等于理想视窗,当大于1时表示将视窗进行放大,小于1时表示缩小。这里只表示初始视窗缩放值,用户也可以自己进行缩放,例如双指拖动手势缩放或者双击手势放大。安卓设备上的initial-scale默认值: 无默认值,一定要设置,这个属性才会起作用。在iphone和ipad上,无论你给viewport设的宽的是多少,如果没有指定默认的缩放值,则iphone和ipad会自动计算这个缩放值,以达到当前页面不会出现横向滚动条(或者说viewport的宽度就是屏幕的宽度)的目的。0.0~10
的数字。no或者yes
。当配置成no时,用户将不能通过手势操作的方式对页面进行缩放。这里需要注意的是
viewport
只对移动端浏览器有效,对PC端浏览器是无效的。适配与缩放
为了让移动端页面获得更好的显示效果,我们必须让布局视口、视觉视口都尽可能等于理想视口,所以我们一般会设置
width=device-width
,这就相当于让布局视口等于理想视口;设置initial-scale=1.0
,相当于让视觉视口等于理想视口;上面提到
width
可以决定布局视口的宽度,实际上它并不是布局视口的唯一决定性因素,设置initial-scale
也有肯能影响到布局视口,因为布局视口宽度取的是width
和视觉视口宽度的最大值。例如:若手机的理想视口宽度为
400px
,设置width=device-width
,initial-scale=2
,此时视觉视口宽度 = 理想视口宽度 / initial-scale
即200px
,布局视口取两者最大值即device-width
400px
。若设置
width=device-width
,initial-scale=0.5
,此时视觉视口宽度 = 理想视口宽度 / initial-scale
即800px
,布局视口取两者最大值即800px
。推荐阅读超详细讲解H5移动端适配
The text was updated successfully, but these errors were encountered: