CSS 超详细讲解(从基础到高级实战)
·
CSS 超详细讲解(从基础到高级实战)
CSS(Cascading Style Sheets,层叠样式表)是前端开发三大核心之一,负责页面的:
- 布局
- 样式
- 动画
- 响应式适配
- 交互视觉体验
现代前端中,CSS 已经不仅仅是“改颜色”,而是:
- 页面架构能力
- 动画能力
- UI 工程化能力
- 组件化能力
- 设计系统能力
一、CSS 基础知识
1. CSS 是什么
HTML:结构
CSS:样式
JavaScript:行为
示例:
<h1 class="title">Hello CSS</h1>
.title {
color: red;
font-size: 32px;
}
2. CSS 引入方式
(1)行内样式
<div style="color:red;">内容</div>
不推荐:
- 难维护
- 权重高
- 无法复用
(2)内部样式
<style>
.box {
color: blue;
}
</style>
(3)外部样式(推荐)
<link rel="stylesheet" href="style.css">
工程化项目标准方案。
3. CSS 选择器
(1)基础选择器
标签选择器
div {
color: red;
}
类选择器(最常用)
.box {
width: 100px;
}
ID 选择器
#app {
background: #000;
}
(2)组合选择器
后代选择器
.box p {
color: red;
}
子元素选择器
.box > p {
color: blue;
}
相邻兄弟
h1 + p {
color: green;
}
(3)伪类选择器
a:hover {
color: red;
}
常见:
:hover:focus:active:nth-child():first-child:last-child
(4)伪元素
.title::before {
content: "🔥";
}
常见:
::before::after
4. CSS 权重机制(面试高频)
权重计算
| 选择器 | 权重 |
|---|---|
| 行内样式 | 1000 |
| ID | 100 |
| class | 10 |
| 标签 | 1 |
示例:
#app .box p {
}
权重:
100 + 10 + 1 = 111
!important
color: red !important;
优先级最高。
但:
❌ 不建议滥用。
5. 盒模型(超级重点)
标准盒模型
width = content
IE盒模型
box-sizing: border-box;
实际开发必须:
* {
box-sizing: border-box;
}
盒模型组成
content
padding
border
margin
二、CSS 布局(核心)
1. display
block
display: block;
特点:
- 独占一行
- 可设置宽高
inline
display: inline;
特点:
- 不换行
- 不支持宽高
inline-block
display: inline-block;
开发常用。
2. position 定位
static
默认定位。
relative
相对自身定位。
position: relative;
left: 20px;
absolute
相对最近定位父元素。
position: absolute;
top: 0;
fixed
固定定位:
position: fixed;
bottom: 20px;
常用于:
- 返回顶部
- 悬浮按钮
sticky(高级)
position: sticky;
top: 0;
吸顶效果。
3. Flex 布局(现代开发核心)
开启 Flex
display: flex;
主轴方向
flex-direction: row;
主轴对齐
justify-content: center;
交叉轴对齐
align-items: center;
实现水平垂直居中
display: flex;
justify-content: center;
align-items: center;
flex:1 原理
flex: 1;
等价:
flex-grow: 1;
flex-shrink: 1;
flex-basis: 0;
Flex 面试题
为什么 Flex 可以居中?
因为:
- 主轴控制横向
- 交叉轴控制纵向
4. Grid 布局(高级)
开启 Grid
display: grid;
定义列
grid-template-columns: 1fr 1fr 1fr;
gap
gap: 20px;
实战场景
适合:
- 后台管理
- 数据大屏
- 卡片布局
三、响应式布局(移动端重点)
1. 媒体查询
@media (max-width: 768px) {
.box {
width: 100%;
}
}
2. rem 适配
html {
font-size: 16px;
}
width: 2rem;
3. vw/vh
width: 50vw;
height: 100vh;
4. 移动端适配方案
现代推荐:
- Flex
- Grid
- vw
- clamp()
- 媒体查询
四、CSS 动画(高级重点)
1. transition 过渡
.box {
transition: all .3s;
}
hover 动画
.box:hover {
transform: scale(1.1);
}
2. transform
位移
transform: translateX(100px);
缩放
transform: scale(1.2);
旋转
transform: rotate(45deg);
3. animation 动画
定义动画
@keyframes move {
0% {
transform: translateX(0);
}
100% {
transform: translateX(200px);
}
}
使用动画
.box {
animation: move 2s infinite;
}
4. 动画性能优化(面试高频)
推荐动画属性:
transform
opacity
原因:
不会触发重排。
避免:
width
height
top
left
容易导致:
- 重排
- 重绘
五、CSS 高级知识
1. BFC(高频面试)
BFC:
块级格式化上下文
作用:
- 清除浮动
- 防止 margin 重叠
- 独立布局
触发 BFC
overflow: hidden;
display: flow-root;
position: absolute;
2. 重排与重绘(必问)
重排 Reflow
元素几何属性变化。
例如:
width
height
margin
代价大。
重绘 Repaint
颜色变化:
background
color
性能较好。
3. CSS 变量
:root {
--main-color: #409eff;
}
使用:
color: var(--main-color);
4. clamp()
响应式神器。
font-size: clamp(14px, 2vw, 24px);
六、CSS 预处理器(重点)
什么是 CSS 预处理器
增强 CSS。
例如:
- 变量
- 嵌套
- 函数
- mixin
- 循环
主流:
- Sass/SCSS(最主流)
- Less
- Stylus
七、SCSS 超详细讲解
1. 安装
npm install sass
2. 变量
$primary-color: #409eff;
.box {
color: $primary-color;
}
3. 嵌套
.card {
.title {
color: red;
}
}
4. mixin(超级重要)
定义
@mixin flex-center {
display: flex;
justify-content: center;
align-items: center;
}
使用
.box {
@include flex-center;
}
5. 继承
%btn {
padding: 10px;
}
.primary-btn {
@extend %btn;
}
6. 循环
@for $i from 1 through 5 {
.mt-#{$i} {
margin-top: #{$i * 10}px;
}
}
八、项目中的 CSS 架构
1. BEM 规范(企业高频)
.card {}
.card__title {}
.card--active {}
2. CSS Modules
React 常见:
style.module.css
避免样式污染。
3. Scoped
Vue:
<style scoped>
</style>
4. 原子化 CSS
例如:
- TailwindCSS
特点:
- 开发快
- 维护强
九、CSS 工程化
PostCSS
自动:
- 补前缀
- 转换兼容
Autoprefixer
display: flex;
自动变:
-webkit-flex
十、CSS 面试常考点(重点)
1. 盒模型区别
标准盒模型 vs IE盒模型。
2. Flex 常考
- flex:1
- justify-content
- align-items
3. BFC
作用:
- 清除浮动
- 防止 margin 合并
4. position 区别
- relative
- absolute
- fixed
- sticky
5. 水平垂直居中
Flex方案(推荐)
display: flex;
justify-content: center;
align-items: center;
6. rem/vw 区别
rem
相对根字体。
vw
相对视口。
7. CSS 隐藏元素的方法
display:none
不占位置。
visibility:hidden
占位置。
opacity:0
透明但可点击。
8. 重排和重绘
性能优化高频。
9. transition 和 animation 区别
transition
状态变化触发。
animation
自动执行动画。
十一、CSS 实战能力提升路线
第一阶段(基础)
掌握:
- 选择器
- 盒模型
- Flex
- 定位
- 动画
第二阶段(项目)
练:
- 企业官网
- 后台系统
- 电商首页
- 移动端页面
第三阶段(高级)
深入:
- Grid
- SCSS
- Tailwind
- CSS架构
- 动画系统
第四阶段(专家)
掌握:
- 设计系统
- UI规范
- 组件库
- CSS性能优化
十二、如何强化自己的 CSS 能力
1. 多临摹优秀网站
推荐:
2. 多写动画
重点:
- transform
- transition
- keyframes
3. 学会拆 UI
训练:
一个页面如何拆布局
4. 学设计思维
前端高手:
≠ 只会写代码
而是:
懂布局 + 懂视觉 + 懂交互
5. 练习 CSS 复刻
推荐:
- Apple 官网
- 小米官网
- Stripe 官网
十三、CSS 学习资源推荐
官方文档
动画学习
Flex/Grid 学习
十四、现代 CSS 技术栈(2026)
推荐掌握:
CSS3
Flex
Grid
SCSS
TailwindCSS
PostCSS
CSS Modules
响应式布局
CSS 动画
设计系统
十五、企业真实 CSS 开发模式
现代企业:
UI设计稿
→ 组件拆分
→ SCSS/Tailwind
→ 响应式适配
→ 动画交互
→ 主题系统
→ 暗黑模式
→ 性能优化
十六、CSS 学习建议(重要)
CSS 真正难的地方:
不是语法。
而是:
布局能力
视觉能力
组件化能力
工程化能力
真正的 CSS 高手:
- 能快速还原设计稿
- 能做复杂动画
- 能做响应式
- 能写可维护样式架构
- 能设计组件系统
- 能优化性能
这也是高级前端的重要分水岭。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)