目前我有一个看起来像这样的div:
我需要编辑HTML / CSS,使其显示如下,下方有一个小三角形。理想情况下,我想使用纯HTML和CSS,没有图像文件。根据{{3}},可以做到。
HTML:
<ul id="nav">
<li class="active"><a href="#"><div class="triangle"></div>Dashboard</a></li>
<li><a href="users/index.html"><div class="triangle"></div>Manage Users</a></li>
<li><a href="tickets/index.html"><div class="triangle"></div>Manage Tickets</a></li>
<li><a href="reports/index.html"><div class="triangle"></div>Reports</a></li>
</ul>
CSS:
#nav {
float: right;
margin: 0;
padding: 8px 0 0 0;
list-style: none;
display: inline-block;
}
#nav li {
float: left;
padding: 7px 5px;
margin: 0 5px;
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
font-weight: 300;
border-radius: 7px;
}
#nav li a {
color: #0b70cc;
text-decoration: none;
padding: 7px 5px;
}
#nav li.active a {
color: #ffffff;
}
#nav li.active {
background-color: #0b70cc;
color: white;
}
如果有人能帮助我这样做,我真的很感激!
答案 0 :(得分:48)
您可以按照自己的意愿配置它,并成为一个干净的CSS
工作原理:
让我们用这种技术创建一个非常简单的三角形:
.container {
position: relative;
display: block;
width: 120px;
height: 50px;
background: blue;
}
.container:after{
position: absolute;
bottom: 0;
height: 0;
width: 0;
left: 50%;
border: 40px solid transparent;
border-bottom-color: red;
content: "";
}
<div class="container"></div>
重要的是height: 0;
&amp;我们应用边界的伪元素的width: 0
。所以你可以想象一个没有大小的元素。这是边界的起源。所以边框的每一边都是一个三角形(尝试用不同的颜色着色每一面以理解它)
因此,要创建“单一三角形”效果,只需将透明颜色应用于边框并为要显示的三角形着色。
替代方案:CSS Clip-Path
使用带有CSS的新clip-path
,您现在可以非常轻松地创建一个矩形。
请注意浏览器支持。像往常一样,IE&amp;遗憾的是,Edge和Opera Mini都不支持它:Can I Use
快速示例:
.new_way {
position: relative;
margin: 100px auto;
background: #88b7d5;
width: 100px;
padding: 20px;
text-align: center;
}
.new_way::after {
content: '';
position: absolute;
top: 100%;
left: calc(50% - 10px);
background: #88b7d5;
width: 20px;
height: 20px;
/* The points are: (left top: x y, right top: x y, center bottom: x y) */
clip-path: polygon(0 0, 100% 0, 50% 100%);
}
<div class="new_way">
Clip Path
</div>
所以现在你只需要1行。很好,不是吗?
答案 1 :(得分:7)
这称为“标注”。
以下是一些例子:
http://cssdeck.com/labs/bv45bh6p(某些例子)
http://mrcoles.com/blog/callout-box-css-border-triangles-cross-browser/(解释其工作原理)