我知道关于逻辑像素和物理像素相关的概念,网上看到的其他人的博客或者其他文章的解释中,基本都是一句:因为在retina屏(iphone4-6)中一个css像素控制着四个(2X2)物理像素,所以看起来变粗了,但! ,根据我看到的一句话:
在不同的屏幕上(普通屏幕 vs retina屏幕),css像素所呈现的大小(物理尺寸)是一致的,不同的是1个css像素所对应的物理像素个数是不一致的。
中所说,两个尺寸相同屏幕不同的设备上css 1px像素呈现的物理尺寸是一致的!如下图所画,视觉上看着变粗了是因为实际尺寸变粗,可两种屏幕中css 1px代表的实际尺寸应该是一样的。
所以到底是为什么会变粗,百思不得其解!
以 dpr=2 为例:
你拿到一张标准的基于 iphone6 的设计稿(750px)
你看到它设计的一个 border宽度是 1px
你兴致勃勃地写下了
border: 1px solid #000;
然而 iphone6 实际渲染像素是375px,那么设计需要border的其实是
border: 0.5px solid #000;
然后你的是 1px
不是1px变粗了,只是实际只是需要0.5px而已...