css 制作丝带
使用 CSS 制作丝带效果
方法一:使用伪元素和旋转
通过 ::before 和 ::after 伪元素创建丝带的两个角,利用 transform: rotate() 旋转并调整位置。
.ribbon {
position: relative;
background: #ff5252;
color: white;
padding: 10px 20px;
margin: 20px;
display: inline-block;
}
.ribbon::before, .ribbon::after {
content: "";
position: absolute;
background: #d32f2f;
width: 20px;
height: 20px;
bottom: -10px;
z-index: -1;
}
.ribbon::before {
left: -10px;
transform: rotate(45deg);
}
.ribbon::after {
right: -10px;
transform: rotate(-45deg);
}
方法二:使用边框和三角形
通过 CSS 边框生成三角形,模拟丝带的折叠部分。

.ribbon {
position: relative;
background: #4CAF50;
color: white;
padding: 12px 30px;
margin: 30px;
display: inline-block;
}
.ribbon::before {
content: "";
position: absolute;
border-style: solid;
border-width: 10px 15px 10px 0;
border-color: transparent #2E7D32 transparent transparent;
left: -15px;
top: 0;
}
.ribbon::after {
content: "";
position: absolute;
border-style: solid;
border-width: 10px 0 10px 15px;
border-color: transparent transparent transparent #2E7D32;
right: -15px;
top: 0;
}
方法三:添加阴影和渐变
结合 box-shadow 和 linear-gradient 增强立体感。

.ribbon {
position: relative;
background: linear-gradient(to right, #FF9800, #FB8C00);
color: white;
padding: 15px 25px;
margin: 25px;
display: inline-block;
box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}
.ribbon::before {
content: "";
position: absolute;
width: 0;
height: 0;
border-left: 15px solid transparent;
border-right: 15px solid #E65100;
border-top: 15px solid #E65100;
border-bottom: 15px solid transparent;
left: -30px;
top: 0;
}
方法四:响应式丝带
通过 vw 单位或媒体查询使丝带适应不同屏幕尺寸。
.ribbon {
font-size: clamp(14px, 2vw, 18px);
padding: 1em 2em;
margin: 1em;
}
注意事项
- 调整
z-index确保丝带角部位于正确层级。 - 使用
clip-path可创建更复杂的形状。 - 丝带颜色应与背景形成对比以保证可读性。






