Skip to content

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;
}

实践建议

  • 优先使用 transformopacity 做动画(GPU 加速)
  • 避免动画触发 layout(如改变 widthheighttop
  • will-change 提前告知浏览器,但不要滥用

用知识连接未来