第 6 卷
2.line-05 { 3width: 100%;
4height: 1px; /* 先设置1px高度 */
| 5 | background-color: #333;/*线条颜色*/ |
|---|---|
| 6 | transform: scaleY(0.5);/*垂直方向缩放50%→视觉0.5px */ |
| 7 | transform-origin: top center;/*缩放原点设为顶部,避免位置偏移*/ |
| 8 | } |
- 垂直0.5px线
Code block
1/* 垂直0.5px线 */ 2.line-v-05 {
3height: 100%;
4width: 1px; /* 先设置1px宽度 */ 5background-color: #333;
| 6 | transform: scaleX(0.5);/*水平方向缩放50% */ |
|---|---|
| 7 | transform-origin: left center;/*缩放原点设为左侧*/ |
| 8 | } |
- 元素边框0.5px(实战常用,如卡片0.5px边框)
Code block
1.box { 2position: relative;
3width: 200px;
4height: 100px;
5border: none; /* 隐藏默认边框 */ 6}
7/* 伪元素实现0.5px边框 */ 8.box::after {
9content: "";
10position: absolute;
11top: 0;
12left: 0;
13width: 200%; /* 放大2倍 */ 14height: 200%;
15border: 1px solid #333;
✅ 方案2:box-shadow 阴影实现(✅ 简洁,兼容性好,适合简单线条)
- 核心原理
利用 box-shadow 的**扩散半径(blur-radius=0)**特性,设置 box-shadow: 0 0 0 0.5px #333,扩散半径为0.5px时,会生成一个无模糊的0.5px阴影,视觉上等同于0.5px线条,无需嵌套元
素,代码极简。
- 代码实现(水平0.5px线)
Code block
1.line-05-shadow { 2width: 100%;
3height: 0; /* 高度为0,仅靠阴影显示 */ 4box-shadow: 0 0 0 0.5px #333; /* 关键:扩散半径0.5px */
5}
- 优势:代码一行搞定,无需缩放,无位置偏移问题
- 注意:部分旧版Android机阴影颜色略有偏差,视觉上无影响
✅ 方案3:background-image 线性渐变实现(✅ 精准,无缩放,适合复杂场
景)
- 核心原理
通过 linear-gradient 线性渐变,创建一个1px高度的背景,让50%区域显示颜色,50%区域透明,视觉上就是0.5px的线条,精准控制,无缩放副作用,支持所有支持CSS3渐变的浏览器。
- 代码实现(水平0.5px线)
Code block
1.line-05-gradient { 2width: 100%;
3height: 1px; /* 基础高度1px */
| 4 | /*渐变:上半部分透明,下半部分颜色→视觉0.5px */ |
|---|---|
| 5 | background-image: linear-gradient(to bottom, transparent 50%, #333 50%); |
| 6 | background-size: 100% 1px;/*固定背景尺寸*/ |
| 7 | background-repeat: no-repeat; |
- 核心原理
移动端高清屏(DPR=2)的物理像素是逻辑像素的2倍,通过设置 viewport 的 initialscale=0.5,将逻辑像素缩放至0.5倍,此时1px逻辑像素 = 1px物理像素,直接设置 1px 线条就是
物理0.5px(视觉上的0.5px),仅适用于移动端项目。
- 代码实现
Code block
1<!-- 第一步:设置viewport缩放0.5 --> 2<meta name="viewport" content="width=device-width, initial-scale=0.5, user-
scalable=no">
Code block
| 1 | /*第二步:直接设置1px线条,即为视觉0.5px */ |
|---|---|
| 2 | .line-05-mobile { |
| 3 | width: 100%; |
| 4 | height: 1px; |
| 5 | background-color: #333; |
| 6 | } |
- 优势:物理级0.5px,显示最精准
- 注意:需配合rem布局使用,否则页面元素尺寸会错乱,仅移动端可用
✅ 方案5:CSS mask 遮罩实现(✅ 进阶方案,适合特殊场景)
- 核心原理
通过 mask 遮罩层,只显示线条的一半区域,实现0.5px效果,适合需要半透明、渐变线条的场景,兼容性稍差(支持Chrome/Firefox/Safari,IE不支持)。
- 代码实现
Code block
1.line-05-mask { 2width: 100%;
3height: 1px;
全站分卷索引 · 8 卷
- 1第 1 卷
- HTML-CSS 前端面试八股文(核心高频题+标准
- 答案)
- ✅ 核心语义化标签(按页面结构分类)
- • <header>:页面/区块头部,包含标题、导航、搜索框等
- • <nav>:导航栏区域,主导航/侧边导航专用
- • <main>:页面核心内容,唯一存在,包裹主要业务内容
- • <section>:内容区块,用于文章章节、产品模块、功能分区
- • <article>:独立内容单元,如文章、评论、商品卡片、新闻条目
- • <aside>:侧边栏,包含相关推荐、作者信息、广告、附属内容
- • <footer>:页面/区块底部,包含版权、联系方式、备案信息
- • <h1>-<h6>:标题层级,h1唯一(页面主标题,权重最高),h2-h6依次降级
- • <p>:纯文本段落,区分普通文本块
- 2第 2 卷
- ✅ 先明确:默认script标签的缺陷(无defer/async)
- ✅ defer 属性的核心作用(按序加载,DOM解析后执行)
- • 依赖DOM元素的JS文件(如操作页面节点、渲染页面内容)
- • 需要按顺序执行的JS文件(如jQuery库 → 依赖jQuery的业务JS)
- • 普通业务逻辑JS、页面初始化JS
- ✅ async 属性的核心作用(并行加载,下载完立即执行)
- • 不依赖DOM、不依赖其他JS的独立脚本
- • 统计埋点JS、广告脚本、第三方工具库(如百度统计、友盟统计)
- • 无需按顺序执行的独立功能JS
- ✅ defer vs async 核心区别总结(面试必背)
- ✅ 面试补充考点
- • defer / async 仅对**外部脚本(src引入)**生效,内联脚本( <script>代码
- 3第 3 卷
- • ::selection:自定义用户选中文字的样式(背景色/文字色)
- • ::first-line / ::first-letter:选中文本首行/首字⺟,做特殊样式
- ✅ 二、布局方式革新(解决传统浮动布局痛点)
- • 核心:给父元素设置 display: flex,子元素自动成为弹性项,支持居中、均分、自适应、换
- • 核心属性: justify-content(主轴对齐)、 align-items(侧轴对齐)、 flex-
- • 优势:移动端布局首选,代码极简,适配性极强,无需计算宽度,解决垂直居中难题
- • 场景:导航栏、列表布局、卡片均分、表单对齐、页面居中
- • 核心:给父元素设置 display: grid,将容器划分为行和列的网格,精准控制子元素的行/列占
- • 核心属性: grid-template-columns(列宽)、 grid-template-rows(行高)、
- • 优势:复杂布局首选,支持跨行/跨列,精准定位,替代传统表格布局+浮动布局
- • 场景:后台管理系统、大屏可视化、商品详情页、不规则布局
- • 核心属性: column-count(列数)、 column-gap(列间距)、 column-rule(列分隔
- 4第 4 卷
- ✅ 什么是CSS Sprites(精灵图/雪碧图)
- ✅ 核心实现原理(简单示例)
- ✅ CSS Sprites 核心优势(性能优化层面,面试必背)
- • 浏览器排队等待请求,页面加载缓慢
- • 增加服务器连接开销和压力
- • 多次TCP握手/断开,浪费网络资源
- • 多张小图合并时,会自动去除每张小图的冗余空白区域,减少无效像素
- • 图片压缩算法对单张大图的压缩效率远高于多张小图,合并后的精灵图体积 < 所有小图体积之和
- • 示例:20张1KB小图总大小20KB,合并后精灵图仅12KB,节省40%体积
- • 减少HTTP请求的同时,也减少了浏览器对图片的解析、解码、渲染次数
- • 避免浏览器频繁切换渲染上下文,降低CPU/GPU占用,页面渲染更流畅,尤其适配移动端低性能设
- • 所有小图标集中管理在一张图中,无需单独维护几十个小图文件
- 5第 5 卷
- • 给div设置 width: 375px,表示div的逻辑宽度为375CSS像素
- • 无论在手机/平板/PC上, 1px 逻辑像素的视觉大小基本一致
- • 像素密度越高,屏幕显示越清晰细腻,无颗粒感
- • 像素密度与设备尺寸、物理像素相关:同尺寸屏幕,物理像素越多,PPI越高
- • 普通电脑屏幕:72PPI / 96PPI(低密屏)
- • 手机高清屏:326PPI+(Retina屏,如iPhone 15:460PPI)
- • 4K显示器:210PPI+(高密屏)
- ✅ 二、三者的核心关联(关键:设备像素比DPR)
- • iPhone 15:逻辑像素393×172,物理像素2556×1179 → DPR=6.5(≈3倍,@3x)
- • 普通安卓机:逻辑像素375×667,物理像素750×1334 → DPR=2(@2x)
- • 电脑屏幕:逻辑像素1920×1080,物理像素1920×1080 → DPR=1(@1x)
- ✅ 三、移动端开发为何需要@2x/@3x图片?(核心问题,面试必讲)
- 6第 6 卷
- 7第 7 卷
- 8第 8 卷