我正在尝试创建有角度的标签以位于内容部分之上,并且遇到了这个很好的例子:
HTML:
<div class="tab">
<div class="arrow"></div>
</div>
CSS:
body
{
background-color: #666;
}
.tab
{
height: 50px;
width: 150px;
border-radius: 10px 10px 0px 0px;
background-color: #FFF;
position: relative;
}
.arrow
{
border-color: transparent transparent #FFF #FFF;
border-style: solid;
border-width: 23px 23px 23px 23px;
height:0;
width:0;
position:absolute;
bottom:0px;
right:-43px;
}
但是,我想为这个形状设置一个不同的2px边框颜色,不幸的是这个方法不起作用,因为它使用边框来创建形状的右侧。
关于如何修改它的任何想法?
答案 0 :(得分:15)
您可以尝试这种方法: jsFiddle
我没有使用边框来创建倾斜效果,而是使用:after
伪元素来创建它。这允许我在它周围设置边框。然后我使用:before
伪元素来隐藏我不想看到的边框。 CSS中的重复2px
是从边框宽度值派生的。
<强> CSS 强>
.tab:before {
height: 50px;
width: 10px;
display: block;
content:" ";
background-color: #FFF;
position: absolute;
right: -2px;
top: -2px;
border-top: 2px solid blue;
border-bottom: 2px solid blue;
}
.tab {
height: 50px;
width: 150px;
border-radius: 10px 10px 0px 0px;
background-color: #FFF;
position: relative;
border: 2px solid blue;
}
.tab:after {
display: block;
content:" ";
width: 100px;
height: 50px;
top: -2px;
background-color: #FFF;
position: absolute;
right: -29px;
transform:skewX(45deg);
-ms-transform:skewX(45deg);
-webkit-transform:skewX(45deg);
border: 2px solid blue;
z-index: -1;
}