用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;
}
相关推荐
FungLeo8 小时前
成为全栈·React 管理后台篇·总复盘:从“接口能调通”到“后台值得使用”
前端·react.js·前端框架·项目复盘·成为全栈
Csvn9 小时前
并发模式:让渲染学会排队、插队和让路
前端
可乐鸡翅yeah_10 小时前
新手梳理:M3U8 线上问题,哪些是前端锅,哪些是后端锅
前端·ios·音视频·实时音视频·m3u8·音视频在线播放
Flynt10 小时前
Linear 用 1000 个 PR 换掉 styled-components,我写了 200 个按钮,把这笔账复现了一遍
前端·css·preact
JavaGuide11 小时前
NVIDIA 又开源了!这次给 AI Agent 加上权限管控
前端·后端
excel11 小时前
prisma 如何处理数据库竞态
前端·数据库·后端
莪_幻尘12 小时前
Skill 体检:30 个 Skill 全凭感觉?体检器先自曝了 8 个“假 0 分
前端·人工智能·llm
风骏时光牛马12 小时前
AI模型综合能力评测:性能、指令遵循与多场景实测对比
前端
Frag0ut12 小时前
Chrome与Chromium内核浏览器在Windows 11上的新特性全景解析
前端·chrome·windows·web安全·chromium·gemini ai·playready drm
hiahiahia12313 小时前
实现完整 Tool Dispatcher
开发语言·前端