由于不同的手机有不同的像素密度导致的。如果移动显示屏的分辨率始终是普通屏幕的2倍,1px的边框在devicePixelRatio=2的移动显示屏下会显示成2px,结果看起来效果就会发生变化。
解决方法
一.在ios8+中当devicePixelRatio=2的时候使用0.5px
二,伪元素 + transform 实现
对于老项目伪元素+transform是比较完美的方法了。
原理是把原先元素的 border 去掉,然后利用 :before 或者 :after 重做 border ,并 transform 的 scale 缩小一半,原先的元素相对定位,新做的 border 绝对定位。
三,viewport + rem 实现
这种兼容方案相对比较完美,适合新的项目,老的项目修改成本过大。
在devicePixelRatio = 2 时,输出viewport:
在devicePixelRatio = 3 时,输出viewport:
四,使用box-shadow模拟边框
利用css 对阴影处理的方式实现0.5px的效果
上一篇: 大数据培训面试题-namenode的HA实现
下一篇: Java培训JavaWeb之Servlet生命周期