我尝试使用CSS创建一个三角形并且它看起来不错,但是我现在在一个框之后实现它时遇到了问题。
看看我的例子,你会看到我的意思:
似乎.box
之后的三角形被“切断”了,我完全不知道为什么会这样。
我希望它看起来像.arrow
。
我试图改变盒子的尺寸,三角形等但没有任何效果。
P.S。如果Jsfiddle很慢或不能再使用,这里是css:
.box{
background:red;
height:40px;
width:100px;
}
/*the triangle but its being cut off*/
.box:after{
content:"";
width:0;
height:0;
border-top:20px solid transparent;
border-bottom:20px solid transparent;
border-left:20px solid green;
}
/*the triangle how it should look like*/
.arrow{
width:0;
height:0;
border-top:20px solid transparent;
border-bottom:20px solid transparent;
border-left:20px solid green;
}
答案 0 :(得分:27)
将三角形更改为position: absolute;
并将position: relative;
添加到.box
会修复它。它似乎继承了盒子的高度。
答案 1 :(得分:4)
如果你想做this!
在div类框中插入div类箭头可能是唯一的解决方案。
html{
padding:50px
}
.box{
position : relative;
background:red;
height:40px;
width:100px;
border : 0px;
}
/*
.box:after{
position : relative;
content:"";
width:0;
height:0;
border-top:20px solid transparent;
border-bottom:20px solid transparent;
border-left:20px solid green;
}
*/
.arrow{
width:0;
height:0;
border-top:20px solid transparent;
border-bottom:20px solid transparent;
border-left:20px solid green;
}
<div class="box">
<div class="arrow">
</div>
</div>
<br><br><br>
<div class="arrow">
</div>