移动端border:1px问题解决方案

了解设备像素和css像素的因该知道,通常我们在写移动端时,是按照设计稿标注的像素除以设备的DPR来写真实的像素,

比如在iPhone6上,我们写的20px字体世界上在视觉效应上有20px;

所以当我们写1px边框时,在手机上看起来会变粗变为2px;

对此有如下解决方案:

.border-1px(@color){
  position:relative;
  &::after{
    display: block;
    position: absolute;
    left:0;
    bottom:0;
    border-top:1px solid @color;
    width:100%;
    content:' ';

  }
}
@media (-webkit-device-pixel-ratio: 1.5),(min-device-pixel-ratio: 1.5) {
  .border-1px{
    &::after{
      -webkit-transform: scaleY(0.7);
      transform: scaleY(0.7);
    }
  }
}
@media (-webkit-device-pixel-ratio: 2),(min-device-pixel-ratio: 2) {
  .border-1px{
    &::after{
      -webkit-transform: scaleY(0.5);
      transform: scaleY(0.5);
    }
  }
}
@media (-webkit-device-pixel-ratio: 3),(min-device-pixel-ratio: 3) {
  .border-1px{
    &::after{
      -webkit-transform: scaleY(0.33);
      transform: scaleY(0.33);
    }
  }
}

 

posted @ 2017-03-13 22:19  yaokunlun  阅读(3939)  评论(0编辑  收藏  举报