使用css 绘制出 1px 的边框,在移动端上渲染的效果会出现不同,部分手机发现1px 线条变胖了,这篇文章整理2种方式实现1px 像素线条。
<style>
span.onepixel{
width: 300px;position: relative;top:50px;
}
span.onepixel::after {
content: '';
width: 300px;
position: absolute;
bottom: 0;
left: 0;
box-shadow: 0 0 0 1px #666;
transform-origin: 0 bottom;
transform: scaleY(.5) translateZ(0);
}
@media (min-resolution: 2dppx) {
span.onepixel.shadow::after {
box-shadow: 0 0 0 .5px #666;
}
}
@media (min-resolution: 3dppx) {
span.onepixel.shadow::after {
box-shadow: 0 0 0 .333333px #666;
}
}
</style>
<span class="onepixel shadow"></span>
<style>
span.onepixel {
display: block;
width: 300px;
position: relative;
}
span.onepixel::before, span.onepixel::after {
content: "";
display: block;
position: absolute;
transform-origin: 0 0;
}
span.onepixel.top::before {
width: 100%;
top: 0; left: 0;
border-top: 1px solid #666;
transform-origin: 0 top;
}
@media (min-resolution: 2dppx) {
span.onepixel.top::before {
width: 200%;
transform: scale(.5) translateZ(0);
}
}
@media (min-resolution: 3dppx) {
span.onepixel.top::before {
width: 300%;
transform: scale(.333333) translateZ(0);
}
}
</style>
<span class="onepixel top"></span>
在移动端web开发过程中,如果你对边框设置border:1px,会发现,边框在某些手机机型上面显示的1px比实际感觉会变粗,这也就是1像素问题。如下图是对桌面浏览器和移动端border设置1px的比较。那么是什么导致这种原因的呢?
我们在开发移动端web项目时经常遇到设置border:1px,但是显示的边框却为2px或是3px粗细,这是因为设备像素比devicePixelRatio为2或3引起的。
px:像素,相对长度单位,相对于显示器屏幕的分辨率而言;rem:这是个web前端中的新成员,是CSS3中新增的一个相对单位。相对的只是html根元素;
前些日子总被人问起 iOS Retina 屏,设置 1px 边框,实际显示 2px,如何解决?原来一直没在意,源于自己根本不是像素眼……今天仔细瞅了瞅原生实现的边框和CSS设置的边框,确实差距不小……
获取设备信息时得到的窗口高度宽度是px为单位的。 在实际使用时,一般使用rpx ,中间要有个转换过程
最近在写移动端 H5 应用,遇到一个值得记录下来的点。现在从它的由来到实现,我们来聊一下移动端 1px,说 1px 不够准确,应该说成 1 物理像素。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!