当前位置: 首页 > news >正文

css:移动端实现1px、0.5px的细线

实现效果
在这里插入图片描述
在线体验: https://mouday.github.io/front-end-demo/1px.html

实现代码


  <body>
    <style>
      * {
        margin: 0;
        padding: 0;
      }

      body {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        height: 100vh;
      }

      .margin-top--20 {
        margin-top: 20px;
      }

      .box {
        width: 500px;
        height: 100px;
        box-sizing: border-box;
      }

      /* 1px border */
      .border--1 {
        border: 1px solid gray;
      }

      .border--0_5 {
        position: relative;
      }

      /* 通过伪元素实现 0.5px border */
      .border--0_5::after {
        position: absolute;
        content: "";
        /* 为了与原元素等大 */
        box-sizing: border-box;
        left: 0;
        top: 0;
        width: 200%;
        height: 200%;
        border: 1px solid gray;
        transform: scale(0.5);
        transform-origin: 0 0;
      }

      .line {
        width: 500px;
      }

      /* 实现 1px 细线 */
      .line--1 {
        height: 1px;
        background: #b3b4b8;
      }

      .line--0_5 {
        position: relative;
      }

      /* 通过伪元素实现 0.5px 细线 */
      .line--0_5::after {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 200%;
        height: 1px;
        background: #b3b4b8;
        transform: scale(0.5);
        transform-origin: 0 0;
      }

      /* dpr适配可以这样写 */
      @media (-webkit-min-device-pixel-ratio: 2) {
        .line--0_5::after {
          height: 1px;
          transform: scale(0.5);
          transform-origin: 0 0;
        }
      }

      @media (-webkit-min-device-pixel-ratio: 3) {
        .line--0_5::after {
          height: 1px;
          transform: scale(0.333);
          transform-origin: 0 0;
        }
      }
    </style>

    <h1>1px border</h1>
    <div class="box border--1"></div>

    <h1 class="margin-top--20">0.5px border</h1>
    <div class="box border--0_5"></div>

    <h1 class="margin-top--20">1px line</h1>
    <div class="line line--1"></div>

    <h1 class="margin-top--20">0.5px line</h1>
    <div class="line line--0_5"></div>
  </body>


参考
为什么会存在 1px 问题?怎么解决?
web前端入门到实战:css3属性transform-origin讲解

相关文章:

  • 解决方案|电力行业应如何应对数字化转型危机
  • 使用iptables动态映射Docker容器端口
  • 低代码怎么用?三位一体发挥最大价值!
  • Libra论文阅读笔记-A unified congestion control framework for diverse application
  • Python代码优化工具——memory_profiler
  • LeetCode220831_92、滑动窗口最大值
  • 哈希碰撞概率计算
  • 2021年超全中高级Java工程师面试题+答案
  • 阿里新产MySQL性能优化实践笔记,GitHub已获千万推荐
  • yolov5篇---官方ultralytics / yolov5代码复现,训练自己的数据集
  • avalanche 配置dns解析域名
  • 【Wordpress】wordpress根据需要DIY配置(更新中)
  • 遥感影像分类任务的复现
  • springboot+vue实现登录案例(附VUE整个项目代码)
  • 如何使用LOTO示波器 绘制 频率响应特性曲线?
  • 收藏网友的 源程序下载网
  • [NodeJS] 关于Buffer
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • CentOS 7 防火墙操作
  • Date型的使用
  • ES6 ...操作符
  • ES6系统学习----从Apollo Client看解构赋值
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • JSONP原理
  • MySQL用户中的%到底包不包括localhost?
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • PHP的类修饰符与访问修饰符
  • SAP云平台里Global Account和Sub Account的关系
  • Windows Containers 大冒险: 容器网络
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 给第三方使用接口的 URL 签名实现
  • 手写一个CommonJS打包工具(一)
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 源码安装memcached和php memcache扩展
  • 在electron中实现跨域请求,无需更改服务器端设置
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​如何防止网络攻击?
  • (C)一些题4
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (多级缓存)缓存同步
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (九十四)函数和二维数组
  • (四)汇编语言——简单程序
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • ***监测系统的构建(chkrootkit )
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET 设计一套高性能的弱事件机制
  • .Net 中Partitioner static与dynamic的性能对比
  • ?php echo ?,?php echo Hello world!;?
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [ 数据结构 - C++] AVL树原理及实现
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序