我正在制作面包屑菜单,并尝试在纯CSS中进行,因此我不必使用背景图像来获得箭头形状.是否有可能用纯CSS实现这种倾斜的边框风格?
我能做的最好看起来就像这样(这只是我刚才做的一个截图,所以请不要理会它意味着面包屑是水果和/或美味):
我是这样用CSS实现它的:
.breadcrumb li { border-right: 2px solid #ECECEC; border-top-right-radius: 40px; border-bottom-right-radius: 40px; }
这是整个CSS,如果有帮助:
div.breadcrumb { display: block; float: left; border-bottom: 2px solid gray; } ul.breadcrumb { display: block; float: left; list-style-type: none; margin: 0px 0px 0px 0px; padding: 0px 0px 0px 0px; } .breadcrumb li { float: left; display: list-item; background-color: #F2F2F2; border-right: 2px solid #ECECEC; border-top-right-radius: 40px; border-bottom-right-radius: 40px; position: relative; padding: 9px 20px 10px 35px; margin-left: -32px; } .breadcrumb li.first-crumb { background: #E7E7E7; padding-left: 20px; margin-left: 0px; } .breadcrumb li.last-crumb { border-top: 1px solid #E3E3E3; border-right: 1px solid #E3E3E3; background: white; padding-top: 9px; padding-bottom: 9px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; } .breadcrumb li:not(.first-crumb) { padding-left: 45px; } .breadcrumb li:not(.last-crumb) a:after { content: "\27F6"; margin-left: 10px; color: #444444; margin-right: 0px; } .breadcrumb li a,.breadcrumb li span { display: block; float: left; position: relative; } .breadcrumb li a { text-decoration: none; } .breadcrumb li.first-crumb a { padding-left: 0px; margin-left: 0px; }
我的标记看起来像这样:
<div class="breadcrumb"> <ul class="breadcrumb"> <li class="breadcrumb first-crumb"><a href="#">Produce</a></li> <li class="breadcrumb"><a href="#">Fruits</a></li> <li class="breadcrumb last-crumb"><span>breadcrumb-ilicIoUs!</span></li> </ul> </div>
编辑:如果我能让它看起来像是一个真正的边界,那将是很好的.这是我的原始故事:
(我尝试根据奥拉夫的建议添加几个三角形,我唯一无法工作的是纠正两个三角形之间明显的间隙而不改变三角形的角度,以形成边界.)
解决方法
从
CSS Tricks – CSS Triangle偷窃,你可以做类似的事情
li.breadcrumb:after { content: ""; display: inline-block; width: 0; height: 0; border-top: 20px solid #eee; border-bottom: 20px solid #eee; border-left: 20px solid #ccc; }
li.breadcrumb:after { content: ""; display: inline-block; width: 0; height: 0; border-top: 20px solid #eee; border-bottom: 20px solid #eee; border-left: 20px solid #ccc; } li.first-crumb:after { border-top: 20px solid #ccc; border-bottom: 20px solid #ccc; border-left: 20px solid #aaa; } li.last-crumb:after { border-top: 20px solid #fff; border-bottom: 20px solid #fff; border-left: 20px solid #eee; } li.breadcrumb { list-style-type: none; background-color: #ccc; display: inline-block; float: left; line-height: 0; } li.first-crumb { background: #aaa; } li.last-crumb { background: #eee; } li.breadcrumb a { text-decoration: none; }
<div class="breadcrumb"> <ul class="breadcrumb"> <li class="breadcrumb first-crumb"><a href="#">Hurr</a> </li> <li class="breadcrumb"><a href="#">Durr</a> </li> <li class="breadcrumb last-crumb"><span>Furr</span> </li> </ul> </div> <div class="arrow-right"></div>
原始JSFiddle