纯CSS丝带效果需用伪元素::before和::after配合skewX()实现,外层正常、内层反向矫正文字,三角用全border技巧(三边透明+一边实色),阴影分层模拟立体感,响应式推荐clip-path替代border。

纯 CSS 就能做出丝带效果,不需要图片、不需要 SVG,但必须用伪元素 ::before 和 ::after 搭配 transform: rotate() 或斜切 skewX(),否则边缘会发虚或错位。
用 skewX() 做基础丝带体最稳
直接对块级元素用 skewX(-20deg) 会让文字也歪,所以得用包裹结构:外层正常,内层反向矫正。常见错误是只 skew 一次,结果左右不对称或阴影跑偏。
- 外层容器设
position: relative,用于定位伪元素 - 主内容区用
skewX(-20deg),再给文字单独skewX(20deg)正向还原 - 丝带两端三角用
::before和::after,绝对定位 +border技巧(比如左三角:右/下边框设色,上/左边框透明) - 避免用
rotate()做尖角——它会触发新层叠上下文,容易遮住相邻元素
::before 和 ::after 画三角时 border 必须写全
漏写任意一条 border,三角就塌了。典型错误是只写 border-right: 20px solid #f00,结果什么也不显示——CSS 三角依赖三边透明 + 一边实色构成视觉夹角。
- 左尖角(
::before):border-top: 16px solid transparent、border-bottom: 16px solid transparent、border-right: 16px solid #3498db - 右尖角(
::after):border-top: 16px solid transparent、border-bottom: 16px solid transparent、border-left: 16px solid #3498db - 两个伪元素都要设
content: "",否则不渲染 - 高度必须和 border 宽度匹配,否则三角比例失真
加阴影和立体感的关键在 box-shadow 分层
单层阴影没法模拟丝带翻折的明暗过渡。很多人只加一个 box-shadow: 0 2px 4px rgba(0,0,0,0.2),结果像贴纸,不是丝带。
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
立即学习“前端免费学习笔记(深入)”;
- 主丝带体加两层阴影:
box-shadow: 0 2px 0 #bdc3c7, 0 4px 6px rgba(0,0,0,0.15)(第一层是“压痕”,第二层是环境光) - 左/右三角单独加
box-shadow: -2px 2px 4px rgba(0,0,0,0.1)或2px 2px 4px rgba(0,0,0,0.1),方向要和倾斜一致 - 别用
filter: drop-shadow()——它会模糊伪元素边界,三角边缘变糊
响应式下丝带宽度缩放时,border 三角会变形
用 vw 或百分比控制丝带宽度时,border 的像素值不会等比缩放,导致小屏上三角过大、挤出容器。
- 解决方案:改用
clip-path画三角(如clip-path: polygon(0 0, 100% 50%, 0 100%)),配合transform: scaleX()动态调整 - 或者用
background: linear-gradient()拼接三角——更可控,但兼容性略低(IE 不支持) - 如果必须用 border,就放弃响应式三角,固定
16px,靠媒体查询在小屏隐藏或替换为纯色块
丝带最难调的其实是两端和主体衔接处的像素级对齐,top/left 差 1px,就会看出断层。建议所有定位值统一用 rem 或 px,别混用 % 和 px。


















