css像素或逻辑像素,单位是px,它是一个相对单位,在不一样dpr(devicePixelRatio 设备像素比)设备中,1px表明的物理像素是不一样的。css
显示屏是由一个个物理像素点组成的,经过控制每一个像素点的颜色,使屏幕显示出不一样的图像,屏幕从工厂出来那天起,它上面的物理像素点就固定不变了,单位pt。git
dpr = 物理像素 / css像素github
iPhone X的dpr和横向css像素浏览器
而iPhone X横向分辨率恰好是1125spa
普通屏幕的1px就是物理像素的1px,而Retina屏的1px就不等于1px了,这就形成了在不一样设备中1px的实际宽度不一致的问题。orm
为了提升用户体验,须要兼容不一样dpr设备,使1px边框真正显示为1个物理像素的宽度(大多状况下咱们仍是但愿1px边框是尽量细)。blog
具体写法以下图片
缺点:
retina 屏的浏览器可能不认识0.5px的边框,将会把它解释成0px,没有边框。包括 iOS 7 和 以前版本,OS X Mavericks 及之前版本,还有 Android 设备。ip
优势:浏览器兼容性很是好 👍get
下面看一下在iPhone XS Max(dpr=3)上的实测效果
完美解决高清屏1px问题 👏
https://objcer.com/2017/06/19...
https://github.com/jawil/blog...