viewport理解

参考:移动前端开发之viewport的深入理解

对以上的文章中的知识点,感觉换另一个角度更好理解一点,记录如下:

屏幕的像素密度:区域像素点总数 / 区域大小

css中的1px显示在像素密度高的屏幕上时,所占据的像素点要多,之所以要这样是因为可以保证,无论在什么分辨率的手机上显示css的1px时,都能保证视觉距离是一致的。

缩/放屏幕时,css中的px所占据的屏幕像素点也会在原来的基础上按照倍数来进行减少/增加

默认情况下(没有设置viewport属性),移动设备上浏览器默认的画布宽度为980px或1024px【视浏览器类型而定】,这个宽度可以通过以下代码来获取

document.documentElement.clientWidth

但如果设置了

  <meta name="viewport" content="width=device-width" /> 

则获取出来的宽度,就是手机屏幕的宽度了。

对页面的渲染过程,可以这么理解:

  把页面渲染到一个画布上,这个画布中的1px与css的1px是一一对应的

  对于PC浏览器来说,这个所谓的画布就是浏览器的客户区。拖动改变浏览器的宽高,实际上就是改变了这个画布的宽高,这个过程不会影响页面的元素大小

  对于移动端的浏览器来说,会相对于PC的渲染过程多出来一个步骤,页面渲染到画布(这个画布的宽度为980px或者1024px)上之后,会等比例缩放这个画布(缩放比例为980px|1024px / 手机屏幕的宽度),来适应显示到手机屏幕上。这就是为什么,默认情况下,一个页面可以在PC上正常显示,但是到了手机上显示,全部东西就都缩小了,如下:

当页面应用了这一句(将移动端的宽度设置为手机屏幕宽度),这样显示到手机屏幕上时,就不需要缩放了

<meta name="viewport" content="width=device-width" />

效果如下:

当移动端页面不再缩放,而且画布大小一样时,手机和PC对于同一个页面的显示效果是一致的:

以上只是通过设置宽度来使缩放比例为1,以达到不缩放的效果,实际上还有另一种方式,可以直接设置缩放比例为1,运行效果和上面的一致

<meta name="viewport" content="initial-scale=1">

总结:width设置的画布的大小,而scale用于设置画布的缩放比例【值为1时,等比例缩放画布,直到画布的宽度等于手机屏幕的宽度】,两者可以同时指定。

对于动态设置meta标签:什么方式都可以,什么时候修改或者添加完成,都会立即生效

时间: 2024-11-08 19:08:17

viewport理解的相关文章

移动前端开发之viewport的深入理解

在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或响应各种不同分辨率的移动设备. 一.viewport的概念 通俗的讲,移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,在具体一点,就是浏览器上(也可能是一个app中的webview)用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览

转载:移动前端开发之viewport的深入理解

原文作者:无双 原文链接:http://www.cnblogs.com/2050/p/3877280.html 在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或响应各种不同分辨率的移动设备. 一.viewport的概念 通俗的讲,移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,在具体一点,就是浏览器上(也可能是一个a

转: 关于viewport的理解

最近我做了一点儿针对手机的Web开发和相关研究.按说,Web自设计之初,就已经考虑了设备无关性.然而,现实总是不尽如人意. 我们知道大多数网页都是针对桌面显示器开发和测试的,但是手机屏幕通常要比桌面显示器小很多,比如iPhone也就是320px.那么那些网页在手机上如何浏览呢? 一种是把网页缩放到很小,你可以看到整个网页但是看不清字了:或者只看网页的一个局部,然后上下左右移动来看其他部分.现在的手机浏览器把两种模式结合使用.(或许还有第三种——分析网页,将其中内容抽取出来,重组,然后呈现,不过这

[转]移动前端开发之viewport的深入理解

今天去面试,被问到一个用了一万次的东西,然而我并不了解具体是个毛毛,看这一篇豁然开朗. DevicePixelRatio 以及这句话:移动设备上的viewport分为layout viewport  . visual viewport   和 ideal viewport  三类. 然后为毛要 既写 width=device-width 又写 initial-scale=1 . 答:为了兼容屏幕竖过来的时候,可以重新渲染宽度咯~~ 原文如下: 在移动设备上进行网页的重构或开发,首先得搞明白的就是

移动前端开发之viewport的深入理解(转载)

本文为转载文章,原文网址:http://www.cnblogs.com/2050/p/3877280.html 在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或响应各种不同分辨率的移动设备. 一.viewport的概念 通俗的讲,移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,在具体一点,就是浏览器上(也可能是一个a

深入理解viewport(转)

在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或响应各种不同分辨率的移动设备. 一.viewport的概念 通俗的讲,移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,在具体一点,就是浏览器上(也可能是一个app中的webview)用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览

移动前端开发之viewport的理解

在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或响应各种不同分辨率的移动设备. 一.viewport的概念 通俗的讲,移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,在具体一点,就是浏览器上(也可能是一个app中的webview)用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览

SVG 入门——理解viewport,viewbox,preserveAspectRatio

工欲善其事必先利其器,没有真正搞懂SVG里的viewport,viewbox, preserveAspectRatio这三个属性,就很容易遇到坑,最近写项目用到svg这三个属性被我一眼就略过 ,后来发现自己并没有理解透,导致写项目产生了奇怪的坑,后面解决了,就是原理没通透,趁着大周末,来一波整理吧 一.这些理论知识必不可少 1.viewport <svg width="400" height="200"></svg> 上面svg中定义的是一个

移动前端开发之viewport的深入理解(转)

在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或响应各种不同分辨率的移动设备. 一.viewport的概念 通俗的讲,移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,在具体一点,就是浏览器上(也可能是一个app中的webview)用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览