我正在尝试绘制一条带有向下箭头的小箭头的线条。
我能够在psuedo标签之前和之后使用help from Stack overflow)使用小提琴。
<hr class="line">
http://jsfiddle.net/4eL39sm1/6/
但我现在需要像这样的div标签
<div class="hr"></div>
我已相应地编辑了我的CSS
div.hr{
width:70%;
}
div.hr:after {
content:'';
position: absolute;
border-style: solid;
border-width: 15px 15px 0;
border-color: #FFFFFF transparent;
display: block;
width: 0;
z-index: 1;
top: 8px;
left: 45%;
}
div.hr:before {
content:'';
position: absolute;
border-style: solid;
border-width: 15px 15px 0;
border-color: #7F7F7F transparent;
display: block;
width: 0;
z-index: 1;
top: 9px;
left: 45%;
}
我做了这两个观察:
我有办法解决这个问题吗?
感谢。
答案 0 :(得分:16)
您可以修改为:
div.hr {
width:70%;
height: 1px;
background: #7F7F7F;
}
div.hr:after {
content:'';
position: absolute;
border-style: solid;
border-width: 15px 15px 0;
border-color: #FFFFFF transparent;
display: block;
width: 0;
z-index: 1;
top: 8px;
left: 35%;
}
div.hr:before {
content:'';
position: absolute;
border-style: solid;
border-width: 15px 15px 0;
border-color: #7F7F7F transparent;
display: block;
width: 0;
z-index: 1;
top: 9px;
left: 35%;
}
&#13;
<div class="hr"></div>
&#13;
如您所见,您不必从top
删除pseudo-elements
。您必须添加的唯一内容是height: 1px
和背景颜色与第二个三角形相同。
另外,如果你想在另一个元素中使用它并且与中心对齐,你可以使用它:
div.hr {
width:70%;
height: 1px;
background: #7F7F7F;
position: relative;
margin: 0 auto;
}
div.hr:after {
content:'';
position: absolute;
border-style: solid;
border-width: 15px 15px 0;
border-color: #FFFFFF transparent;
display: block;
width: 0;
z-index: 1;
left: 50%;
}
div.hr:before {
content:'';
position: absolute;
border-style: solid;
border-width: 15px 15px 0;
border-color: #7F7F7F transparent;
display: block;
width: 0;
z-index: 1;
left: 50%;
}
&#13;
<div>
<div class="hr"></div>
</div>
&#13;
P.S。顺便说一句,我是第一篇文章中回答的人:)
与@ user3861559交谈后,我为他的情况创建了一种方法。而不是pseudo-elements
我使用具有相同结果的嵌套div:
div.hr {
width:70%;
height: 1px;
background: #7F7F7F;
}
div.after {
position: absolute;
border-style: solid;
border-width: 15px 15px 0;
border-color: #FFFFFF transparent;
display: block;
width: 0;
z-index: 1;
top: 8px;
left: 35%;
}
div.before {
position: absolute;
border-style: solid;
border-width: 15px 15px 0;
border-color: #7F7F7F transparent;
display: block;
width: 0;
z-index: 1;
top: 9px;
left: 35%;
}
&#13;
<div class="hr">
<div class="before"></div>
<div class="after"></div>
</div>
&#13;