CSS实用技巧
CSS 实用技巧可以帮助你更高效地编写样式、解决常见布局问题、提升页面性能和用户体验。以下是一些常用的 CSS 技巧,涵盖布局、样式优化、响应式设计、动画等方面:
一、布局技巧
- 居中布局
水平居中:
css
.container {
text-align: center; /* 文本/inline 元素 /
margin: 0 auto; / 块级元素,需指定宽度 /
display: flex;
justify-content: center; / Flex 布局 /
}
垂直居中:
css
.container {
display: flex;
align-items: center; / Flex 布局 /
display: grid;
align-items: center; / Grid 布局 /
position: relative;
}
.child {
position: absolute;
top: 50%;
transform: translateY(-50%); / 绝对定位 + transform /
}
水平垂直居中:
css
.container {
display: flex;
justify-content: center;
align-items: center; / Flex 布局 /
display: grid;
place-items: center; / Grid 布局(简洁写法) /
position: relative;
}
.child {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%); / 绝对定位 + transform */
} - 两栏 / 三栏布局
两栏布局(左侧固定,右侧自适应):
css
.left {
width: 200px;
float: left;
}
.right {
margin-left: 200px; /* 或 overflow: hidden; 触发 BFC /
}
/ Flex 写法 /
.container {
display: flex;
}
.left {
width: 200px;
}
.right {
flex: 1;
}
三栏布局(两侧固定,中间自适应):
css
.left {
width: 200px;
float: left;
}
.right {
width: 150px;
float: right;
}
.center {
margin-left: 200px;
margin-right: 150px;
}
/ Flex 写法 */
.container {
display: flex;
}
.left {
width: 200px;
}
.center {
flex: 1;
}
.right {
width: 150px;
} - 等高布局
Flex 布局:
css
.container {
display: flex;
align-items: stretch; /* 默认值,子元素等高 /
}
Grid 布局:
css
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: 1fr; / 行高自适应,子元素等高 */
}
伪元素 + padding 技巧(兼容旧浏览器):
css
.container {
overflow: hidden;
}
.column {
float: left;
width: 33.333%;
padding-bottom: 9999px;
margin-bottom: -9999px;
}
二、样式优化技巧 - 简化代码
使用简写属性:
css
/* 完整写法 /
margin-top: 10px;
margin-right: 20px;
margin-bottom: 10px;
margin-left: 20px;
/ 简写 /
margin: 10px 20px;
继承样式:
css
body {
font-family: Arial, sans-serif;
color: #333;
}
.child {
/ 继承 body 的字体和颜色,无需重复设置 */
} - 避免样式冲突
使用 BEM 命名规范(Block-Element-Modifier):
css
.button { /* Block /
padding: 10px 20px;
}
.button__icon { / Element /
margin-right: 5px;
}
.button--primary { / Modifier /
background-color: #007bff;
}
使用 CSS Modules(React/Vue 项目):
css
/ style.module.css /
.container {
padding: 20px;
}
/ 组件中导入,类名会被哈希,避免冲突 */
import styles from './style.module.css';
使用 picture 元素:
html
预览
// 好的写法(一次性修改,触发一次重排)
element.style.cssText = 'width: 100px; height: 200px; margin: 10px;';
使用 transform 和 opacity 实现动画(不会触发重排,仅触发重绘或合成):
css
.element {
transition: transform 0.3s ease, opacity 0.3s ease;
}
.element:hover {
transform: scale(1.1);
opacity: 0.8;
}
2. 优化选择器
避免使用复杂选择器:
css
/* 不好的写法(多层嵌套,性能差) /
.container .row .col .text {
color: #333;
}
/ 好的写法(简洁选择器) */
.text {
color: #333;
}
使用 ID 选择器或类选择器(比标签选择器、属性选择器优先级高,查找更快):
css
header
.nav { /* 类选择器 */ }
3. 懒加载样式
使用 media="print" 或 media="(max-width: 0)" 延迟加载非关键样式:
html
预览

浙公网安备 33010602011771号