移动端解决1px问题

less 常用写法:

https://blog.youkuaiyun.com/pedrojuliet/article/details/81873002

例子:

思路:

增加伪类,根据dpi不一样,将边框进行缩放

代码:

1.

 

2.在mixin.less 写如下代码。.border-1px函数

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

    }
}

3.根据不同的dpi将伪类中的尺寸缩放

写一个border-1px 的class类。哪个元素需要。将该类写在该元素上

 

// 根据不同的dpi将边框进行缩放 -webkit-min-device-pixel-ratio: 1.5 dip的值
// 1.5 * 0.7趋近于1px
@media (-webkit-min-device-pixel-ratio: 1.5),(min-device-pixel-ratio: 1.5){
    .border-1px{
        &::after{
            -webkit-transform: scaleY(0.7);
            transform: scaleY(0.7);
        }

    }
}
// 2 * 0.5 趋近于1px
@media (-webkit-min-device-pixel-ratio: 2),(min-device-pixel-ratio: 2){
    .border-1px{
        &::after{
            -webkit-transform: scaleY(0.5);
            transform: scaleY(0.5);
        }

    }
}

 

该问题解决

补充如何给vue-cli 3 设置文件的别名

 

如何router-link的默认样式:

 

 

如果上下左右都加边框呢?

border-1px($color = #ccc, $radius = 2PX, $style = solid)
 position: relative
 &::after
   content: ""
   pointer-events: none
   display: block
   position: absolute
   left: 0
   top: 0
   transform-origin: 0 0
   border: 1PX $style $color
   border-radius: $radius
   box-sizing border-box
   width 100%
   height 100%
   @media (min-resolution: 2dppx)
     width: 200%
     height: 200%
     border-radius: $radius * 2
     transform: scale(.5)
   @media (min-resolution: 3dppx)
     width: 300%
     height: 300%
     border-radius: $radius * 3
     transform: scale(.333)



这个是 cube-ui 组件库里提供的 1 像素边框的解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值