← 返回目录

第 8 卷

第 8 / 8 卷日期:

1/DPR倍,此时1px CSS逻辑像素 = 1px 物理像素,直接设置 1px 边框就是真实的1px物理线条,无缩放、无模糊,是最精准的解决方案,适合纯移动端rem布局项目。

  • 代码实现(JS+CSS)

Code block

1// 第一步:动态设置viewport,适配DPR 2(function() {

3const dpr = window.devicePixelRatio || 1;//获取设备DPR
4const meta = document.createElement('meta');
5meta.name = 'viewport';
6//核心:initial-scale=1/DPR,禁止用户缩放
7meta.content = `width=device-width, initial-scale=${1/dpr}, maximum-

scale=${1/dpr}, minimum-scale=${1/dpr}, user-scalable=no`;

8document.head.appendChild(meta);

9})();

Code block

1/*第二步:直接设置1px边框,即为真实1px物理线条*/
2.box {
3width: 10rem;
4height: 5rem;
5border: 1px solid #e5e5e5;/*真实1px,无模糊*/
6}
  • 优势:物理级精准1px,无缩放副作用,代码极简
  • 注意:需配合rem布局使用,否则页面元素尺寸错乱,仅适用于移动端,PC端不可用
  • 方案3:box-shadow 阴影实现(✅ 极简方案,适合简单线条,无嵌套)
  • 核心原理

利用 box-shadow 的扩散半径特性,设置 box-shadow: 0 0 0 1px #e5e5e5,扩散半径为 1px时,阴影的视觉粗细等同于真实1px边框,且阴影不占布局空间,无缩放、无偏移,代码一行搞

定,适合简单单边框/全边框场景。

  • 代码实现
5box-shadow: 0 0 0 1px #e5e5e5;/*关键:扩散半径1px */
6border-radius: 8px;/*支持圆角,无毛刺*/
7}
8/*底部1px线条*/
9.border-bottom-shadow {
10box-shadow: 0 -1px 0 0 #e5e5e5 inset;/*内阴影实现下边框*/
11}
  • 优势:代码极简,无需伪元素,支持圆角,无兼容性问题
  • 注意:阴影颜色与背景色对比弱时,视觉上略有模糊,不影响使用
  • 方案4:background-image 线性渐变实现(✅ 精准无缩放,适合特殊场景)
  • 核心原理

通过 linear-gradient 线性渐变,创建1px高度/宽度的渐变背景,仅填充1px物理像素的区域,实现真实1px线条,适合需要渐变边框、半透明边框的特殊场景,无缩放、无偏移,精准控制。

  • 代码实现(底部1px线条)

Code block

1.border-bottom-gradient { 2width: 100%;

3height: 1px;

4/*渐变:仅显示1px物理像素的颜色,其余透明*/
5background-image: linear-gradient(to right, #e5e5e5 100%, transparent 0);
6background-size: 100% 1px;
7background-repeat: no-repeat;
8background-position: bottom;
9}
  • 方案5:使用border-image 图片实现(✅ 兼容旧版浏览器,适合复杂边框)
  • 核心原理

制作1px宽的透明背景+1px颜色的图片(PNG格式),

(注:文档部分内容可能由 AI 生成)

全站分卷索引 · 8 卷
  1. 1第 1 卷
  2. 2第 2 卷
  3. 3第 3 卷
  4. 4第 4 卷
  5. 5第 5 卷
  6. 6第 6 卷
  7. 7第 7 卷
  8. 8第 8 卷