• 移动端1px边框问题的3种解决方法


    一、起因:

        按照iPhone6的尺寸,一张750px宽的设计图,这个750px其实就是iPhone6的设备像素,在测量设计图时量到的1px其实是1设备像素,而当我们设置布局视口等于理想视口等于375px,并且由于iPhone6的DPR为2,写css时的1px对应的是2设备像素,所以看起来会粗一点。

    二、解决方法:

      1.border-image

        基于media查询判断不同的设备像素比给定不同的border-image

    .border_1px{
              border-bottom: 1px solid #000;
            }
    @media only screen and (-webkit-min-device-pixel-ratio:2){
          .border_1px{
                 border-bottom: none;
                 border- 0 0 1px 0;
                 border-image: url(../img/1pxline.png) 0 0 2 0 stretch;
              }
         }

      2.background-image

        和border-image类似,准备一张符合条件的边框背景图,模拟在背景上

    .border_1px{
              border-bottom: 1px solid #000;
            }
    @media only screen and (-webkit-min-device-pixel-ratio:2{
        .border_1px{
                background: url(../img/1pxline.png) repeat-x left bottom;
                background-size: 100% 1px;
                }
            }
    

        上面两种都需要单独准备图片,而且圆角不是很好处理,但是可以应对大部分场景。

      3.伪类 + transform

        基于media查询判断不同的设备像素比对线条进行缩放

    .border_1px:before{
              content: '';
              position: absolute;
              top: 0;
              height: 1px;
               100%;
              background-color: #000;
              transform-origin: 50% 0%;
            }
            @media only screen and (-webkit-min-device-pixel-ratio:2){
                .border_1px:before{
                    transform: scaleY(0.5);
                }
            }
            @media only screen and (-webkit-min-device-pixel-ratio:3){
                .border_1px:before{
                    transform: scaleY(0.33);
                }
            }

        这种方式可以满足各种场景,如果需要满足圆角,只需要给伪类也加上border-radius即可。

  • 相关阅读:
    MySQL中的char与varchar详解
    有关PHPstorm的git环境的配置和git密钥的生成总结
    PHP开发中常用的字符串操作函数
    PHP 二维数组排序函数的应用 array_multisort()
    大龄程序员的出路在哪里
    近期面试总结(PHP后端开发工程师)(部分笔试题)
    B-Tree目录和Hash索引的区别
    curl、fopen和file_get_contents区别
    什么是OAuth授权
    SEO 统计算法
  • 原文地址:https://www.cnblogs.com/yxkNotes/p/13962260.html
Copyright © 2020-2023  润新知