阅读 149

面试官:画一个边框宽度为0.5px的正方形叭。

我们知道在写移动端页面时,有个经典的1px问题。该问题的原因是:在pc端的设计稿拿到移动端会产生视觉上的放大,解决该问题的方案就是将1px缩小为0.5px。

解决方法

1.直接写0.5px,不兼容。
2.transform的scale。
3.linear-gradient,渐变。
4.SVG。
5.box-shadow。
6.meta中的viewport。

实现

在上述方案中效果最好,最常用的是transform的缩放,接下来我们就看看是怎么实现的叭。

              .box1 {             background: none;             margin-top: 10px;             margin-left: 200px;             height: 100px;             width: 100px;             border: 0.5px solid #000;         }         .box2 {             position: relative;             margin: 10px 0 0 200px;             border: none;             background: none;             height: 100px;             width: 100px;         }         .box2::after {             content: '';             position: absolute;             border: 1px solid #000;             top: 0;             left: 0;             box-sizing: border-box;             width: 200%;             height: 200%;             transform: scale(0.5);             transform-origin: left top;         }     <div class="box"></div>     <div class="box1"></div>     <div class='box2'></div> 复制代码

使用伪元素给box2添加边框。注意这里要添加transform-origin: left top;不然盒子会偏移中心。

image.png
这是在pc端的效果,是不是感觉直接设置为0.5px,反而会更细呢。但是我们再看看移动端的情况。

image.png
在移动端只有缩放0.5的方案才符合效果。


作者:krisking抗日时空
链接:https://juejin.cn/post/7005001846964092936


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐