1px问题-详解

当你给一个div这样的css样式后 边框宽度为1px

.border
  height 50px
  width 50px
  margin 0 auto
  background pink
  margin-top 20px
  border 1px solid red

在手机发现 哎,怎么有点粗

这就是经典的1px问题,下面贴出我的解决方案。网上栗子很多,可自行寻找

.scale_1px{
  position:relative;
  border:none;
}
.scale_1px:after{
  content:'';
  position:absolute;
  top: 0;
  left: 0;
  border: solid 1px red;
  box-sizing: border-box; 
  width: 200%; 
  height: 200%; 
  display: inline-block;
  transform: scale(0.5); 
  transform-origin: left top; 
}

发现可以勒(图片不太明显 自己尝试下就可以看出来了):

为什么?

物理像素

又称设备像素,指设备能控制显示的最小物理单位,只显示器上的一个个点
从屏幕在工厂生产出的那天起,它上面设备像素点就固定不变了,和屏幕尺寸大小有关,单位 pt。

逻辑像素(dip)

css样式代码使用的就是逻辑像素,指的是viewport中的一个小方格。
如果在一个设备中,物理像素与逻辑像素相等,则逻辑=物理。但是,在iphone 4以上中,物理像素是640px960px,而逻辑像素数为320480px。因此,需要使用大约4个物理像素来显示一个CSS像素

像素比
物理像素/逻辑像素

例如:iPhone6的dpr为2,物理像素750(x轴),则它的逻辑像素为375。

所以,1px的边框在iphone6显示只是1px的css像素 4个物理像素,为实现真正1px需要缩小1倍,如果手机的dpr为3 则缩小0.333 …

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值