移动端(手机)上 1 像素 px 边框的实现方法

背景

在 vue.js 下使用 stylus 实现 1 像素 border 边框,如果使用 css 样式属性

border-bottom

实现边框的话,在 PC 浏览器上面是一条 1 像素边框(1条细线),但是在移动设备上面 DPI 数值越大,屏幕越清晰。使用这个属性,在移动设备上会变成一条很粗的线。

实现方式

方式1: 伪类定位 + 缩放

1、首先在要画边框的元素上面定义一个伪类,这个是一个绝对定位的, 通过伪类画了一个 1 像素边框,定位到元素的下边,就是下边框

border-1px($color)
  position: relative
  &:after
    display: block
    position: absolute
    left: 0
    bottom: 0
    width: 100%
    border-top: 1px solid $color
    content: ' '

2、实现一个 class 对伪类做缩放。根据设备的最小 DPI ,根据比例对纵轴进行缩放。

@media (-webkit-min-device-pixel-ratio: 1.5),(min-device-pixel-ratio: 1.5)
  .border-1px
    &::after
      -webkit-transform: scaleY(0.7)
      transform: scaleY(0.7)

@media (-webkit-min-device-pixel-ratio: 2),(min-device-pixel-ratio: 2)
  .border-1px
    &::after
      -webkit-transform: scaleY(0.5)
      transform: scaleY(0.5)

方式2 : 直接用 <div> 实现 border

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,790评论 1 92
  • 一、meta标签的效果 移动端页面一般会在head头部添加如下meta标签。 该meta标签是否添加对页面渲染的影...
    nimw阅读 3,618评论 0 5
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,328评论 0 11
  • 看到铺天盖地的广告和朋友圈里逐渐增多的晒礼物,才猛然发现:“七夕节”快到了! 此时此刻,我不由自主想...
    诗情画意乐在淇中阅读 437评论 0 2