css 面包屑

今天为了写一个简单的样式,研究了半天,图如下:


方法其实很简单,但中间尝试了很多,特记录下来重要的东西。

首先单看图片,发现中间这块使用了两个css的三角形,一块在左边为灰色,一块在右边为白色,写下了如下代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
.div0 {
	width: 600px;
	height: 34px;
}
.div1 {
	width: 250px;
	height: 34px;
	background-color: #999;
	float: left;
	position: relative;
}
.div2 {
	position: absolute;
	left: 250px;
	width: 0px;
	height: 0px;
	border-left: #999 17px solid;
	border-right: #fff 17px solid;
	border-bottom: #fff 17px solid;
	border-top: #fff 17px solid;
}
.div4{ 
	position: absolute;
	left: 266px;
	width: 0px;
	height: 0px;
	border-left: #fff 17px solid;
	border-right: #f00 17px solid;
	border-bottom: #f00 17px solid;
	border-top: #f00 17px solid;}
.div3 {
	width: 250px;
	height: 34px;
	background-color: #F00;
	float: left;	
}
</style>
</head>
<body>
<div class="div0">
  <div class="div1">
    <div class="div2"></div>
    <div class="div4"></div>
  </div>
  <div class="div3"></div>
</div>
</body>
</html>
效果如下:


咋一看是实现了,但当我想把中间的空隙缩小时,发现就会变成这样,效果如下:


发现没有,左边的尖被盖上了,才想起来右块的左边框是存在的,只是背景变成了白色而已,法克!就算把左块的 z-index设高也会变成如下效果:


那我把左边块的背景变成透明(transparent)总行了吧,NO!NO!NO! 右边的红色会填充,效果如下:


OMG,是找BD的时候了!

找了半天发现这是一个叫做 “面包屑”导航的东东,效果、代码如下:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
* {
	margin: 0;
	padding: 0;
	list-style-type: none;
}
a {
	border: 0;
}
.demo {
	width: 600px;
	margin: 50px auto;
	background: #999;
}
.demo ul {
	height: 32px;
	overflow: hidden;
}
.demo ul li{
	float: left;
	width: 200px;
	text-align: center;
	line-height:32px;
	font-weight: bold;
	font-size: 16px;
	position: relative;
}
.demo li em{
	position: absolute;
	width: 0;
	height: 0;
	right: -24px;
	top: -8px;
	border-width: 24px 0 24px 24px;
	border-color: transparent transparent transparent #fff;
	border-style: dashed dashed dashed solid;
}
.demo li i{
	position: absolute;
	width: 0;
	height: 0;
	right: -16px;
	top: 0px;
	border-width: 16px 0 16px 16px;
	border-color: transparent transparent transparent #999;
	border-style: dashed dashed dashed solid;
}
</style>

</head>

<body>
<div class="demo">
  <ul class="clearfix">
    <li>面包屑一<em></em><i></i></li>
    <li class="current">面包屑二<em></em><i></i></li>
    <li>面包屑二<em></em><i></i></li>
  </ul>
</div>
</body>
</html>
看了半天,有点不懂啊,遂就用 firbug 调试了一下,终于发现其中的玄机,哦~~~~

原来,道理是一样的,不过他把右边的块,即标签<em>的边框变大了,通过绝对定位将其居中(top:-8px;),如图:


而左边的块,即标签<i>的边框是父级的一半,这样上边框+下边框=父级高度,如图:


同时,em、i(对应的是右块、左块)的上、右、下边框都是透明的,只有左块不同,em(右块)的左边框是白色,i(左块)的边框是灰色的。

这样,大块(em)上又一个小块(i),同时边框透明,就达到了面包屑的效果。

下面的图更能说明问题,把ul的高度加大,黑色为em(右块),红色为i(左块)。


效果是做完了,但这令我想到很多东西,完全可以用css做对话框之类的效果,等等。。。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面包屑导航是一种常见的网页设计元素,用于帮助用户追踪他们在网站中的位置和浏览历史。它通常以面包屑的形式显示在页面的顶部或者导航栏中。引用提到了边界半径代码可以用于辅助面包屑导航,在面包屑菜单的左上方和右下方提供了整洁的效果。这种效果可以通过CSS3的边框和阴影属性来实现。 面包屑导航不仅可以为用户提供导航和定位的功能,还能增加用户体验。当用户浏览网站的不同页面时,他们可以通过面包屑导航迅速返回到上一级或者更高级的页面。这样可以提高导航的便利性和效率。 要实现面包屑导航,您可以将其放置在页面的头部或导航栏位置,并使用HTML和CSS来创建链接路径。您可以使用有序列表或无序列表元素来定义面包屑导航的结构,并使用样式来调整其外观和布局。 例如,您可以为面包屑导航添加样式,如背景颜色、字体样式、间距和边框等。您还可以使用伪元素来添加箭头或其他符号,以增强导航的可读性。 总结起来,面包屑导航是一种有助于用户定位和追踪浏览历史的网页设计元素。通过使用HTML和CSS,您可以创建具有吸引力和易于使用的面包屑导航,提高用户体验和导航效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [css面包屑导航_在CSS3中编写优美的面包屑导航菜单](https://blog.csdn.net/cune1359/article/details/106842995)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值