我有这个div,我在其中添加了带有文本的橙色'功能区':UPDATED到右上角,如下所示:
<div class='portfolio-item' >
<div class='ribbon-updated'>
<p>updated</p>
</div>
</div>
基本上.portfolio-item有css(以及其他一些不相关的css):
position: relative
overflow: hidden
和.ribbon更新的css
.ribbon-updated
position: absolute
background-color: $orange-medium
transform: rotate(45deg)
padding: 5px 10px
top: 15px
right: -35px
left: auto
width: 130px
p
color: $white
margin-bottom: 0
text-transform: uppercase
letter-spacing: 1px
font-weight: 600
text-align: center
但有没有办法通过不添加一个全新的div.ribbon更新?我可以在div.portfolio-item中添加一个像'ribbon'这样的css类给它一个功能区吗?
答案 0 :(得分:4)
使用伪类before
或after
确定只使用CSS。
您甚至可以从html属性中读取功能区文本值:
.portfolio-item {
width: 200px;
height: 300px;
background: #ddd;
position: relative;
overflow: hidden;
float: left;
margin: 10px;
}
.portfolio-item[data-ribbon]::before {
content: attr(data-ribbon);
position: absolute;
background-color: orange;
transform: rotate(45deg);
line-height: 32px;
padding: 0 10px;
top: 24px;
right: -35px;
width: 130px;
color: white;
text-transform: uppercase;
letter-spacing: 1px;
font-weight: 600;
text-align: center;
}
&#13;
<div class='portfolio-item' data-ribbon="updated">
</div>
<div class='portfolio-item' data-ribbon="custom">
</div>
<div class='portfolio-item' data-ribbon="new">
</div>
&#13;
可以找到对CSS生成内容的浏览器支持3.4。