首页> 前端教程> CSS教程

CSS3教程:利用border的transparent特性完成面包屑导航

border属性在CSS3新增了很多样式,比如border-radius圆角样式,其中可以为border-color设置transparent值则实现了利用该样式绘制三角形等的能力。

transparent表示透明,透明不代表不存在。

在CSS2里面,只能为background-color设置该值,在CSS3里,只要能设置颜色的地方都可以使用。

一、绘制一个三角形

HTML结构如下:

 <div class="b1"></div>

先设置基础样式,如下:

.b1{
	width:100px;
	height:100px;
	background-color:#eee;
	border:20px solid #0BA61B;
	border-top:none;}

你会发现,当top的边框没有的时候,上面是齐平的,如图:

border边框.jpg

继续设置样式,把左右两边的边框颜色设置为transparent。

.b1{
	width:100px;
	height:100px;
	background-color:#eee;
	border-left:20px solid transparent;
	border-right:20px solid transparent;
	border-bottom:20px solid #0BA61B;
	}

这时候发现颜色为透明的边框和另一个有颜色的边框交界处是斜线,而不是齐平的线条。效果如图所示:

border为transparent的时候.jpg

此时,只需要设置容器的宽高为0,清除背景色,就可以了。

.b1{
	width:0;
	height:0;
	border-left:20px solid transparent;
	border-right:20px solid transparent;
	border-bottom:20px solid #0BA61B;
	}

效果如图所示:

用border做出三角形.jpg

你还可以根据需要修改边框的值,如果把左右边框的值设置为底部边框的一半:

.b1{
	width:0;
	height:0;
	border-left:10px solid transparent;
	border-right:10px solid transparent;
	border-bottom:20px solid #0BA61B;
	}

效果如图所示:

border制作三角形.jpg

反过来,可以设置一条边的透明值:

.b1{
	width:0;
	height:0;
	border-top:20px solid #0BA61B;
	border-bottom:20px solid #0BA61B;
	border-left:20px solid transparent;
	}

则效果如图所示:

border制作三角形.jpg

还可以两条边没有,一条边透明,一条边有颜色:

.b1{
	width:0;
	height:0;
	border-right:20px solid transparent;
	border-bottom:20px solid #0BA61B;
	}

效果如图所示:

border制作三角形.jpg

可以自己多多实验不同的搭配^_^

二、结合:before和:after伪元素实现特别的面包屑导航

面包屑导航.jpg

查看案例

1、HTML结构

因为结构都是一样的,所以只列出其中一个,非常简单的列表。

<ul id="breadcrumb3" class="clearfix">
      <li><a href="#" id="current">web前端</a></li>
      <li><a href="#">CSS</a></li>
      <li><a href="#">CSS3</a></li>
      <li><a href="#">border边框</a></li>	
</ul>

2、CSS样式

#breadcrumb li{
	float:left;
	}
#breadcrumb li a{
	display:block;
	position:relative;
	height:36px;
	line-height:36px;
	background-color:#ccc;
	padding:0 20px 0 30px;
	border:1px solid #bbb;
	border-right:none;
	color:#333;
	text-decoration:none;
	background-image: -webkit-gradient(linear, left top, right bottom, from(#eee), to(#ccc));
	background-image: -webkit-linear-gradient(left, #eee, #ccc);
	background-image: -moz-linear-gradient(left, #eee, #ccc);
	background-image: -ms-linear-gradient(left, #eee, #ccc);
	background-image: -o-linear-gradient(left, #eee, #ccc);
	background-image:linear-gradient(to right,#eee,#ccc);/*线性渐变*/}
#breadcrumb li:first-child a{
	-webkit-border-radius:5px 0 0 5px;
	-moz-border-radius:5px 0 0 5px;
	border-radius:5px 0 0 5px;}
#breadcrumb li a:after,#breadcrumb li a:before{
	content:"";
	position:absolute;
	right:-10px;
	bottom:0;
	z-index:10;
	border-left:10px solid #ccc;
	border-top:18px solid transparent;
	border-bottom:18px solid transparent;
	}
#breadcrumb li a:before{
	border-left-color:#999;
	right:-11px;
	z-index:9;}
#breadcrumb li:last-child a:after{
	right:-9px;/*最后一个li的a:after的right边距往右移9px*/
	}
#breadcrumb li:last-child a:before{
	right:-10px;}

#breadcrumb li a:hover{
	color:#400000;
	background-color:#eee;
	background-image:none;
}
#breadcrumb li a:hover:after{
	border-left-color:#eee;}
	

/*--------------------------------------------*/
/*第二个面包屑导航样式*/
#breadcrumb1 li{
	float:left;
	margin:0 10px;}
#breadcrumb1 li a{
	position:relative;
	display:block;
	padding:0 20px;
	line-height:38px;
	text-align:center;
	background-color:#ddd;
	text-shadow:0 1px 0 rgba(255,255,255,.5);
	}
#breadcrumb1 li a:hover{
	background-color:#62B31A;}
#breadcrumb1 li a:before{
	content:"";
	position:absolute;/*必须是apdiv类的定位,否则默认有高度。*/
	border-left:10px solid transparent;
	border-top:19px solid #ddd;
	border-bottom:19px solid #ddd;
	top:0;
	left:-10px;
	}
#breadcrumb1 li a:hover:before{
	border-color:#62B31A #62B31A #62B31A transparent;}
#breadcrumb1 li a:after{
	content:"";
	position:absolute;
	right:-10px;
	top:0;
	border-top:19px solid transparent;
	border-bottom:19px solid transparent;
	border-left:10px solid #ddd;}
#breadcrumb1 li a:hover:after{
	border-color:transparent #62B31A transparent #62B31A;}
/*--------------------------------------------*/
#breadcrumb2 li{
	float:left;
	margin:0 30px 0 0;}
#breadcrumb2 li a{
	position:relative;
	display:block;
	line-height:38px;
	padding:0 20px;
	background-color:#ddd;
	-webkit-border-radius:5px 0 0 5px;
	-moz-border-radius:5px 0 0 5px;
	border-radius:5px 0 0 5px;}
#breadcrumb2 li a:after{
	content:"";
	position:absolute;
	width:30px;
	height:30px;
	top:4px;
	right:-17px;
	-webkit-border-radius:5px;
	-moz-border-radius:5px;
	border-radius:5px;
	background-color:#ddd;
	-webkit-transform:rotate(45deg);
	-moz-transform:rotate(45deg);
	transform:rotate(45deg);/*顺时针旋转45度*/
	}
#breadcrumb2 li a:hover,#breadcrumb2 li a:hover:after{
	background-color:#6AE4E8;} 
/*--------------------------------------------*/ 
#breadcrumb3 li{
	float:left;
	margin-right:-15px;}
#breadcrumb3 li a{
	position:relative;
	display:block;
	padding:0 20px;
	color:#fff;
	border-right:36px solid transparent;
	border-bottom:36px solid rgba(102,102,102,.5);
	height:0;/*让文字在边框上*/
	line-height:36px;/*在边框里纵向居中*/
	}
#breadcrumb3 li a:hover{
	border-bottom-color:rgba(36,196,230,.7);}
#breadcrumb3 li a#current{
	border-bottom-color:#333;
	z-index:2;/*层级上升,可以压住旁边的对象*/
	}
/*--------------------------------------------*/
#breadcrumb4 li{
	float:left;
	margin-right:20px;}
#breadcrumb4 li a{
	display:block;
	line-height:36px;
	padding:0 20px;
	position:relative;
	background-color:#ccc;}
#breadcrumb4 li a:before,#breadcrumb4 li a:after{
	content:"";
	position:absolute;
	width:14px;
	height:36px;
	left:-7px;
	bottom:0;
	background-color:#ccc;
	-webkit-border-radius:5px 0 0 5px;
	-moz-border-radius:5px 0 0 5px;
	border-radius:5px 0 0 5px;
	-webkit-transform:skew(-10deg);
	-moz-transform:skew(-10deg);
	-ms-transform:skew(-10deg);
	transform:skew(-10deg);/*逆时针旋转10度*/
	}
#breadcrumb4 li a:after{
	border-radius:0 5px 5px 0;
	left:auto;
	right:-7px;
	}
#breadcrumb4 li a:hover,#breadcrumb4 li a:hover:after,#breadcrumb4 li a:hover:before{
	background-color:#E9E043;}
/*#breadcrumb4 li a#current1:before,#breadcrumb4 li a#current1:after{
	content:normal;}*/
	/*如果不需要:after等伪元素的内容,可以把content设置为normal*/

该案例需要对伪元素知识点和相对绝对定位有了解才能轻松搞定哦,还有一点变形效果(transform)是额外内容。

如果有疑问,欢迎给我留言,或者QQ交流。

点赞


6
保存到:

相关文章

发表评论: 取消回复

◎请发表你卖萌撒娇或一针见血的评论,严禁小广告。

Top

哆哆女性网易经周html5网站建设女孩儿起小名梅里雪山未解之谜网上取名起名大全大全监理公司起名埃及恐怖传说进学解读后感姓柳女起名梦想三国之勇往直击破解版周公解梦梦见头发脱落西安seo基础网站封套设计胡雪岩电视剧免费 周易 取名釜山行电影免费看s7-200编程软件设计培训网站建设梦见秃头了周公解梦seo源代码鬼附身真实事件男孩起名吴口袋妖怪究极日月cia济南网络营销推广公司seo虫虫教程20国集团峰会空间免费黑色皮肤外贸网站建设推广的上海 网站设计公司商贸公司大气起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化