前端移动端1像素问题

原因

主要原因是css像素与物理像素的区别

首先说一个概念:dpr

dpr,即device pixel ratio,设备像素比

不同的设备具有不同的像素比,dpr决定了由设备的多少个物理像素显示web css的一个像素

比如dpr为2时,设备上由2个像素表现css上的一个像素

解决1px border问题

知道了1像素问题产生的原因后,解决它也就是个水到渠成的过程了

要想达到1px效果,只需要查询当前设备的dpr,再根据dpr进行缩放即可

例如纵轴缩放处理1px border代码如下

复制代码
@mixin border_1px($color) {
    //设置父元素相对定位,否则子元素是个根节点
    position: relative;
    //媒体查询
    @media(-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5)  {
        &::before{
            content: ' ';
            position: absolute;
            left:0px;
            top: 0px;
            background-color: $color;
            height: 1px;
            width: 100%;
            //核心,1px/像素比
            transform: scaleY(0.667);
        }
    }
    @media(-webkit-min-device-pixel-ratio: 2), (min-device-pixel-ratio: 2)  {
        &::before{
            content: ' ';
            position: absolute;
            left:0px;
            top: 0px;
            background-color: $color;
            height: 1px;
            width: 100%;
            transform: scaleY(0.5);
        }
    }
    @media(-webkit-min-device-pixel-ratio: 3), (min-device-pixel-ratio: 3)  {
        &::before{
            content: ' ';
            position: absolute;
            left:0px;
            top: 0px;
            background-color: $color;
            height: 1px;
            width: 100%;
            transform: scaleY(0.333);
        }
    }
}
复制代码

 

posted @   IslandZzzz  阅读(1202)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示