为什么移动端CSS里面写了1px,实际上看起来比1px粗
了解设备物理像素和逻辑像素的同学应该很容易理解,其实这两个
px
的含义其实是不一样的,UI设计师要求的1px是指设备的物理像素1px,而CSS里记录的像素是逻辑像素,它们之间存在一个比例关系,
可以用javascript中的
window.devicePixelRatio
来获取,也可以用媒体查询的-webkit-min-device-pixel-ratio
来获取。当然,比例多少与设备相关。<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
这句话定义了本页面的viewport的宽度为设备宽度,初始缩放值和最大缩放值都为1,并禁止了用户缩放。
或许你已经明白1px变粗的原因是啥了,
viewport的设置和屏幕物理分辨率是按比例而不是相同的. 移动端window对象有个devicePixelRatio属性,
它表示设备物理像素和css像素的比例, 在retina屏的iphone手机上, 这个值为2或3, css里写的1px长度映射到物理像素上就有2px或3px那么长。