移动端像素概念及1px边框解决方案

本文目录:

  • 1.物理像素
  • 2.逻辑像素
  • 3.设备像素比
  • 4.1px边框在移动端的解决方案

1.物理像素

物理像素也叫设备像素,是设备屏幕实际拥有的像素点。比如iPhone 6的屏幕在宽度方向有750个像素点,高度方向有1334个像素点,所以iPhone 6 总共有750*1334个物理像素。

2.逻辑像素

逻辑像素也叫CSS像素,同时也叫“设备独立像素”(Device Independent Pixel, DIP),可以理解为反映在CSS/JS代码里的像素点数。

3.设备像素比

Device Pixel Ratio, DPR,一个设备的物理像素与逻辑像素之比。
在PC端,物理像素和逻辑像素没区别,CSS里写个1px,屏幕就给你渲染成1个实际的像素点,DPR=1。
但是随着Retina技术的兴起,使用4个乃至更多物理像素来渲染1个逻辑像素,这样一来,同样的CSS代码设置的尺寸,在Retina和非Retina屏幕上看起来大小是一样的,但在Retina屏幕上要精细得多。
在Retian屏上,DPR不再是1,而是大于1,比如2(iPhone 5 6 7 8)或3(iPhone 6 Plus等一系列Plus)或者为非整数(一些Android机),说不定还会涨。

4.1px边框在移动端的解决方案

暂不推荐的方法:

  • 设置0.5px边框(兼容性差)
  • 设置 border-image 方案(兼容性差)
  • viewport动态修改缩放比例(开发成本高)

推荐方案:媒体查询 + transfrom方案
原理:元素本身不定义边框,伪元素定义1px边框,并且根据根据像素比值设置缩放比例,像素比为3时设置为0.33,像素比为2时设置0.5。

/* 2倍屏 */
.border{
      position: relative;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2.0) {
    .border::after {
           content: '';
      position: absolute;
      background: #000;
      width: 100%;
      height: 1px;
           -webkit-transform: scaleY(0.5);
           transform: scaleY(0.5);
    }
}
/* 3倍屏 */
@media only screen and (-webkit-min-device-pixel-ratio: 3.0) {
    .border::after {
           content: '';
      position: absolute;
      background: #000;
      width: 100%;
      height: 1px;
           -webkit-transform: scaleY(0.33);
           transform: scaleY(0.33);
    }
}

上述代码的使用方法:
1.将上面的代码拷贝进项目的样式文件中
2.给准备添加边框的元素增加上border样式
注意:上面的样式代码默认添加的是上边框,如果要添加下边框的话,请添加上bottom: 0;样式,如果是添加左边框右边框的话,则需要把width:100%;修改为height:100%,transfrom也要从scaleY变成scaleX

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 为什么模拟器下iP6的分辨率为375*667而设计图一般给750*1334? PPI:每英寸内有多少物理像素点(设...
    LoveBugs_King阅读 2,264评论 0 0
  • 移动端适配方案:1)viewport(scale=1/dpr)2)rem3)flex4)vm/vh一、什么是移动端...
    puxiaotaoc阅读 43,198评论 3 56
  • 问题的由来 手机屏幕的分辨率差异很大。 iphone4:320×480 iphone6:375×667 H5 网页...
    尚山夏香阅读 2,482评论 0 1
  • 本文介绍了移动端适配的3种方法,以及移动端图片模糊问题和1px细线问题的解决方法。当然了,在这之前先整理了与这些方...
    指尖跳动阅读 3,552评论 0 1
  • 世界是一面镜子,照射着我们的内心,我们内心是什么样子,世界就是个什么样子,选择抱怨,我们内心是充满痛苦,黑暗和绝望...
    悟道修行阅读 254评论 0 1