编写移动端高清屏页面的1px边框和线
找了好几种方法,感觉这个方法才是最简单的。直接上代码:
<!--判断屏幕的物理像素是2还是3.合理解决ios上1px线更粗的问题--> @media screen and (-webkit-min-device-pixel-ratio: 2){ .one:before { position: absolute; top: 4.4rem; left: 0; width: 100%; height: 1px; -webkit-transform: scale(1,.5); transform: scale(1,.5); -webkit-transform-origin: 0 0; transform-origin: 0 0; content: ''; border-top: 1px solid #ddd; } .t:before { position: absolute; top: 0; left: 0; width: 100%; height: 1px; -webkit-transform: scale(1,.5); transform: scale(1,.5); -webkit-transform-origin: 0 0; transform-origin: 0 0; content: ''; border-top: 1px solid #ddd; } .l:before { position: absolute; top: 0; left: 0; width: 1px; height: 100%; -webkit-transform: scale(.5,1); transform: scale(.5,1); -webkit-transform-origin: 0 0; transform-origin: 0 0; content: ''; border-left: 1px solid #ddd; } .r:before { position: absolute; top: 0; right: 0; width: 1px; height: 100%; -webkit-transform: scale(.5,1); transform: scale(.5,1); -webkit-transform-origin: 0 0; transform-origin: 0 0; content: ''; border-right: 1px solid #ddd; z-index: 1; } .b:after { position: absolute; bottom: -1px; left: 0; width: 100%; height: 1px; -webkit-transform: scale(1,.5); transform: scale(1,.5); -webkit-transform-origin: 0 0; transform-origin: 0 0; content: ''; border-bottom: 1px solid #ddd; } .all:before { border: 1px solid #ddd; -webkit-border-radius: 4px; border-radius: 4px; width: 200%; height: 200%; position: absolute; top: 0; left: 0; -webkit-transform: scale(.5); transform: scale(.5); pointer-events: none; -webkit-transform-origin: 0 0; transform-origin: 0 0; content: ''; } }
<body>
<div class="out">
<h2 class="one">测试的一行文字</h2>
<div class="out">
<div class="inner t">上边框</div>
<div class="inner l">左边框</div>
<div class="inner r">右边框</div>
<div class="inner b">下边框</div>
<div class="inner all">边框</div>
</div>
</div>
<div class="out m-t">
测试的另一行文字
<hr class="m-t-o"></hr>
</div>
</body>
一种方法是
给div添加 position: relative;
再添加相对应的伪类
另一种方法是
把hr绘制成一像素的横线,hr样式如下
{
border:none;
border-bottom:1px solid rgb(221,221,221);
height:1px;
-webkit-transform: scaleY(0.5);
-webkit-transform-origin:0 0;
}
效果图:放大还是能看出一像素处理后和没处理的区别



浙公网安备 33010602011771号