1. clip-path
:自由裁剪元素形状
通过定义多边形、圆形或 SVG 路径,实现非矩形元素的切割效果。
动态多边形裁剪
.element { clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); /* 梯形效果 */ }
SVG 路径裁剪
.element { clip-path: path('M 10,30 A 20,20 0,0,1 50,30 A 20,20 0,0,1 90,30 Q 90,60 50,90 Q 10,60 10,30 z'); /* 自定义心形 */ }
2. mix-blend-mode
:元素混合模式
控制元素与其下方内容的颜色混合方式,类似 Photoshop 的图层混合模式。
文字穿透效果
.text { mix-blend-mode: difference; /* 反色混合 */ color: white; background: black; }
multiply
(正片叠底)、screen
(滤色)、overlay
(叠加)等 16 种模式。3. counter
:CSS 计数器
无需 JavaScript 实现自动编号(可用于列表、章节标题等)。
自定义有序列表
ol { counter-reset: section; list-style: none; } li::before { counter-increment: section; content: "第" counter(section, cjk-ideographic) "章 "; /* 输出:第一章、第二章... */ }
4. @supports
:特性检测
针对浏览器支持性实现渐进增强样式。
检测是否支持 Grid 布局
.container { display: block; } @supports (display: grid) { .container { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } }
5. scroll-snap
:滚动捕捉
实现轮播图或分页滚动精准定位。
横向滚动捕捉
.container { scroll-snap-type: x mandatory; overflow-x: scroll; display: flex; } .item { scroll-snap-align: start; flex: 0 0 100vw; }
6. shape-outside
:文字环绕形状
让文本围绕非矩形元素排版。
圆形图片文字环绕
img { shape-outside: circle(50%); float: left; width: 200px; height: 200px; }
7. backdrop-filter
:背景滤镜
为元素背后的区域添加模糊、颜色调整等效果。
毛玻璃效果
.modal { backdrop-filter: blur(10px) saturate(180%); background: rgba(255, 255, 255, 0.1); }
8. conic-gradient
:锥形渐变
创建环形颜色分布(适合饼图、色轮)。
饼图效果
.pie-chart { width: 200px; height: 200px; border-radius: 50%; background: conic-gradient( #ff6b6b 0deg 120deg, #4ecdc4 120deg 240deg, #45b7d1 240deg 360deg ); }
9. :is()
与 :where()
伪类
简化复杂选择器,:where()
的优先级始终为 0。
统一多层级样式
:is(article, section, aside) h1 { font-size: 2rem; } :where(.dark-mode, .high-contrast) a { color: white; }
10. CSS 变量 + calc()
动态计算
实现响应式动态样式控制。
动态间距系统
:root { --base-spacing: 8px; --multiplier: 2; } .item { margin: calc(var(--base-spacing) * var(--multiplier)); /* 16px */ }
11. mask-image
:元素遮罩
使用图片或渐变控制元素显示区域。
渐变遮罩淡出效果
.element { mask-image: linear-gradient(to right, black 80%, transparent 100% ); }
12. aspect-ratio
:固定宽高比
强制元素保持特定比例(如 16:9 视频容器)。
响应式视频容器
.video-container { aspect-ratio: 16 / 9; width: 100%; background: black; }
13. @property
自定义属性类型
显式定义 CSS 变量的类型,实现动态过渡效果。
颜色渐变过渡
@property --primary-color { syntax: "<color>"; inherits: false; initial-value: #ff6b6b; } .element { transition: --primary-color 0.3s; background: var(--primary-color); } .element:hover { --primary-color: #4ecdc4; }
14. ::marker
列表标记样式
自定义列表符号(比 list-style
更灵活)。
自定义序号样式
ol li::marker { content: "▶ "; color: #ff6b6b; }
15. gap
间隙控制(Grid/Flex)
替代传统的 margin
间隔方案。
Flex 布局间隙
.container { display: flex; gap: 20px; /* 同时控制行和列间隙 */ }
掌握这些特性,可以大幅减少对 JavaScript 的依赖,实现更纯粹的 CSS 魔法效果 。