viewport和px

---恢复内容开始---

上次面试腾讯被问到不同分辨率在不同viewport下的表现, 那时候对这个方面不太了解, 后面深入了解了一下原理, 总算思路比较清晰了

 

一般viewport用在移动端重构上面, 我们的页面应该按照320/640/720的适配? 还是需要每种尺寸都适配来适应不同的屏幕?

 

现在一般按照640的大小适配移动端, 给元素赋予固定的像素, 但是在不同的手机里面看起来差不多, 不需要另外去适配咯, 这就是viewport的作用

 

---------------------------------------------------------------------------------------

有几个问题需要解答:

1、绝对单位? 相对单位?

  绝对单位: cm(厘米) mm(毫米)

  相对单位: px rem em

2、屏幕尺寸? 屏幕分辨率? 屏幕像素密度?

  屏幕尺寸: 屏幕对角线的长度, 单位英寸, 常见尺寸有3.5(i4), 4.0(i5)。。。

  屏幕分辨率: 横纵向上的像素点数, 单位px, 1px=1像素点(指的是物理设备的一像素)

  屏幕像素密度: 屏幕每英寸可以显示的像素点数量, 单位ppi

  (盗用一个图)

3、 ppi/dpi/dp/dip/sp/px

  ppi: pixel per inch 每英寸显示的像素点的数量, 屏幕像素密度

  dpi: dots per inch (dpi用在计算机上就是ppi)

  dp, dip: Density independent Pixels, 密度独立像素, 作用是使同样的设置在不同手机上显示的效果一样

  如: 在Android中,规定以160dpi为基准,1dp=1px。如果密度是320dpi,则1dp=2px, 就是说在比较大屏幕上, dpi是小手机的2被, 那px也是小手机的两倍,那么,显示同样20px的在小手机就占用20px, 在大手机占用40px,如图

  

  px将显示器分成小方格, 每个方格就是一个像素, 网页重构使用的px和屏幕分辨率的px不一定是一样的大小

 

重构移动页面的时候使用px和安卓开发使用dp是一样的, 背后的dpi不一样, 对应的系数帮我们适配到这个手机的大小, 详见上面的dp解释

 

----------------------------------------------------------------------------------------------------

viewport

手机浏览器把页面放在一个虚拟的窗口, 窗口可以大于或小于手机的可视区域, 用户可通过平移或者缩放看网页的其他部分

一般手机默认viewport是980px/1024px

viewport的设置一般如下

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

 参数对应

 网页重构时使用的px将显示器分成细小的方格, 每个放歌就是一个像素(和屏幕分辨率的640px × 320p不一样)

 iphone如果不设置viewport, 那么默认是980px, 就把屏幕分成980分, 如果设置一个元素为100px * 100px, 那么就占用屏幕的100/980

   如果设置了viewport: width= device-width, 那么屏幕酒杯就被分成320份(假设屏幕是320px),设置一个元素属性为100px * 100px, 那么就占用了100/320

   在不同的手机设置viewport: width=device-width, viewport的大小反而差不多

 如 

  iPhone6的屏幕分辨率是1334*750px,ppi是326,所以系数是2x。那device-width就等于750/2=375px。

  红米1s的屏幕分辨率是1280*720px,ppi是312,所以系数是2x。那device-width就等于720/2=360px。

--------------------------------------------------------------------------------------------------

总结:

给元素赋予固定的像素值,给字体16px的大小,在大部分手机里能看起来差不多大小,所以我们并不需要写其他尺寸来适配不同的屏幕大小

 

参考:

http://tgideas.qq.com/webplat/info/news_version3/804/7104/7106/m5723/201509/376281.shtml

---恢复内容结束---

posted @ 2015-10-27 12:02  JoeChan  阅读(413)  评论(0编辑  收藏  举报