我正在尝试使用CSS3完成非常类似于下图的内容。
唯一的区别是最后一个div会有尖头。
在我寻找类似于适应的东西时,我遇到了this js fiddle这与我想做的非常接近,但是引入了两个问题:第一,用帆布完成,第二,用力我为每个箭头有效地“绘制”箭头两次 - 一个用于div,一个用于下一个箭头之前的空间。必须有一些更清洁的方法来做到这一点 - 有人能在这里给我一些方向吗?
我需要知道的是如何使用CSS3构建上图中显示的内容 - 一系列重叠的div箭头。
答案 0 :(得分:24)
试试这个 - http://jsfiddle.net/ksNr3/8/
ul {
margin: 20px 60px;
}
ul li {
display: inline-block;
height: 30px;
line-height: 30px;
width: 100px;
margin: 5px 1px 0 0;
text-indent: 35px;
position: relative;
}
ul li:before {
content: " ";
height: 0;
width: 0;
position: absolute;
left: -2px;
border-style: solid;
border-width: 15px 0 15px 15px;
border-color: transparent transparent transparent #fff;
z-index: 0;
}
ul li:first-child:before {
border-color: transparent;
}
ul li a:after {
content: " ";
height: 0;
width: 0;
position: absolute;
right: -15px;
border-style: solid;
border-width: 15px 0 15px 15px;
border-color: transparent transparent transparent #ccc;
z-index: 10;
}
ul li.active a {
background: orange;
z-index: 100;
}
ul li.active a:after {
border-left-color: orange;
}
ul li a {
display: block;
background: #ccc;
}
ul li a:hover {
background: pink;
}
ul li a:hover:after {
border-color: transparent transparent transparent pink;
}
更新 - 使其可点击并最小化重叠区域 - http://jsfiddle.net/ksNr3/8/
答案 1 :(得分:6)
以下CSS3解决方案不使用任何图片,并且易于使用。
我创建了 TWO 完全评论的示例,可以进一步扩展。
一个例子是箭头“视觉上”相互堆叠。
另一个例子是就像问题中的图像一样,箭头上有“end-caps”。
每个示例都有一个简单的jQuery .click()
事件监听器,因此您可以看到无论您在 breadcrumb 中单击的位置,锚点都会收到正确的单击事件。箭头尾巴正常工作。
屏幕截图显示了NavBar面包屑的活动CSS悬停:
在浏览器中禁用CSS时,痕迹导航会优雅地降低可访问性要求。
参考: jsFiddle