CSS 实用技巧
日常开发中高频使用的 CSS 技巧集锦。
Flexbox 居中
最简洁的垂直+水平居中方案:
css
.center {
display: flex;
justify-content: center;
align-items: center;
}Grid 布局
响应式网格,自动适应屏幕:
css
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
}毛玻璃效果(Glassmorphism)
css
.glass {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid rgba(255, 255, 255, 0.15);
border-radius: 12px;
}文字截断
单行截断
css
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}多行截断(限制 3 行)
css
.line-clamp-3 {
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}自定义滚动条
css
.custom-scroll::-webkit-scrollbar {
width: 6px;
}
.custom-scroll::-webkit-scrollbar-track {
background: transparent;
}
.custom-scroll::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.2);
border-radius: 3px;
}平滑渐变边框
css
.gradient-border {
border: 2px solid transparent;
background-clip: padding-box;
background-image: linear-gradient(#0a0a0a, #0a0a0a),
linear-gradient(135deg, #22c55e, #3b82f6);
background-origin: border-box;
border-radius: 12px;
}响应式字体
用 clamp() 实现无断点的流式字体缩放:
css
h1 {
/* 最小 1.5rem,首选 4vw,最大 3rem */
font-size: clamp(1.5rem, 4vw, 3rem);
}CSS 变量(自定义属性)
css
:root {
--primary: #22c55e;
--bg-dark: #0a0a0a;
--radius: 12px;
--transition: 0.3s ease;
}
.button {
background: var(--primary);
border-radius: var(--radius);
transition: all var(--transition);
}常用动画
淡入上移
css
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.animate-in {
animation: fadeInUp 0.5s ease forwards;
}脉冲呼吸
css
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
.pulse {
animation: pulse 2s ease-in-out infinite;
}实践建议
- 优先使用
transform和opacity做动画(GPU 加速) - 避免动画触发 layout(如改变
width、height、top) - 用
will-change提前告知浏览器,但不要滥用