我尝试使用顶部三角形为div添加边框
问题是边框未应用于三角形部分
body {
background-color: #F3F5F6;
}
.info-panel {
display: block;
position: relative;
background: #FFFFFF;
padding: 15px;
border: 1px solid #DDDDDD;
margin-top: 20px;
}
.info-panel:after {
content: '';
display: block;
position: absolute;
left: 20px;
bottom: 100%;
width: 0;
height: 0;
border-bottom: 10px solid #FFFFFF;
border-top: 10px solid transparent;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
}

<div class="info-panel">
Testing
</div>
&#13;
我不想添加css框阴影。
我需要一个边框。
答案 0 :(得分:12)
实际上“三角形部分”本身就是边框,这就是为什么你不能对它应用CSS边框的原因,但是有一种解决方法。
使用:before
伪元素创建另一个大于第一个的三角形并将边框颜色应用于它。
.info-panel {
display: block;
position: relative;
background: #FFFFFF;
padding: 15px;
border: 1px solid #DDDDDD;
margin-top: 20px;
}
.info-panel:before, .info-panel:after {
content: '';
display: block;
position: absolute;
bottom: 100%;
width: 0;
height: 0;
}
.info-panel:before {
left: 19px;
border: 11px solid transparent;
border-bottom-color: #ddd;
}
.info-panel:after {
left: 20px;
border: 10px solid transparent;
border-bottom-color: #fff;
}
<div class="info-panel">
Testing
</div>
答案 1 :(得分:1)
离开这个
.info-panel:after {
border-bottom-color: #FFFFFF;
}
它覆盖了绿色边缘。
检查此代码段
.info-panel {
display: block;
position: relative;
background: #FFFFFF;
padding: 15px;
border: 1px solid #DDDDDD;
margin-top: 20px;
}
.info-panel:before {
border: 1px solid #DDDDDD;
}
.info-panel:after {
content: '';
display: block;
position: absolute;
left: 20px;
bottom: 100%;
width: 0;
height: 0;
border-bottom: 10px solid green;
border-top: 10px solid transparent;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
}
&#13;
<div class="info-panel">
Testing
</div>
&#13;
希望有所帮助
答案 2 :(得分:1)
您可以使用fontAwesome实现这一目标。查看我的示例并根据需要进行调整
.info-panel {
display: block;
position: relative;
background: #FFFFFF;
padding: 15px;
border:1px solid #DDDDDD;
margin-top:20px;
}
.info-panel:after, .info-panel:before {
content: '\f0d8';
font-family: fontAwesome;
display: block;
position: absolute;
font-size: 36px;
left: 20px;
bottom: 100%;
top: -22px;
width: 0;
height: 0;
color: #ccc; /* should be your desired border color */
}
.info-panel:before {
color: white;
z-index: 2;
top: -21px;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet"/>
<div class="info-panel">
Testing
</div>