用CSS画一条0.5px的线

上次面试前端被问到了这个问题,感觉有点懵懵的,我就回答了一个scaleY(0.5),这个是真的没想到,希望有需要的朋友可以去看看。随便记住一种就行。

1.第一种方式:通过缩放1px的线条实现视觉上的0.5px效果,兼容性较好。

复制代码
.thin-line {
  position: relative;
}

.thin-line::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px; /* 初始高度1px */
  background: #000;
  transform: scaleY(0.5); /* 垂直缩放至0.5倍 */
  transform-origin: 0 0; /* 确保缩放基点正确 */
}

2.第二种方式:直接使用0.5px边框(现代浏览器)

复制代码
.thin-border {
  border-bottom: 0.5px solid #000;
}

3.第三种方式:使用transform缩放(推荐) 结合媒体查询(适配高分辨率屏幕)

复制代码
.thin-line::after {
  content: '';
  /* ...同方法1... */
}

/* 高分辨率设备直接使用0.5px */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
  .thin-line::after {
    border-bottom: 0.5px solid #000;
    transform: none; /* 禁用缩放 */
  }
}

4.第四种方式:线性渐变:创建极细渐变模拟线条,适合简单场景。

复制代码
.thin-gradient {
  background: linear-gradient(to bottom, #000 50%, transparent 50%);
  height: 1px;
  transform: scaleY(0.5);
}

5.第五种方式:​box-shadow:利用微小阴影模拟线条。

复制代码
.thin-shadow {
  box-shadow: 0 0.5px 0 #000;
}
相关推荐
带娃的IT创业者1 小时前
TypeScript + React + Ant Design 前端架构入门:搭建一个 Flask 个人博客前端
前端·react.js·typescript
二十雨辰1 小时前
vite如何处理项目中的资源
开发语言·javascript
非凡ghost2 小时前
MPC-BE视频播放器(强大视频播放器) 中文绿色版
前端·windows·音视频·软件需求
Stanford_11062 小时前
React前端框架有哪些?
前端·微信小程序·前端框架·微信公众平台·twitter·微信开放平台
洛可可白2 小时前
把 Vue2 项目“黑盒”嵌进 Vue3:qiankun 微前端实战笔记
前端·vue.js·笔记
学习同学3 小时前
从0到1制作一个go语言游戏服务器(二)web服务搭建
服务器·前端·golang
-D调定义之崽崽3 小时前
【初学】调试 MCP Server
前端·mcp
四月_h4 小时前
vue2动态实现多Y轴echarts图表,及节点点击事件
前端·javascript·vue.js·echarts
文心快码BaiduComate4 小时前
用Zulu轻松搭建国庆旅行4行诗网站
前端·javascript·后端
正义的大古5 小时前
OpenLayers地图交互 -- 章节十八:拖拽旋转和缩放交互详解
javascript·vue.js·openlayers