首发于 WeCode365
手把手教你做'面包屑'导航栏

手把手教你做'面包屑'导航栏

最近做项目,要做一个 progress bar ,类似面包屑导航栏的样式,正好借此机会写一个教程,教你手把手做一个 "面包屑" 导航栏.

首先看一下面包屑导航栏的样式:

这样就是一个面包屑导航栏, 虽然看起来很简单,但是其实也很简单,哈哈哈,不过对于刚入前端门不久的同学来说还是可以做为练手的项目的,废话不多说,开始做.

首先我们需要新建一个 html 页面:

这就是我们导航栏最基本的页面了,看一下效果:

下面就是要加上样式了:

 #crumbs ul li{
    	float: left;
    	list-style-type: none;
    }

然后我们再来看一下效果:

恩,至少变成一行了,离目标进了,下面我们就是要给他们加上背景和宽高边框之类的样式:

#crumbs ul li a {
        display: block;
        float: left;
        height: 30px;
        background: #3498db;
        text-align: center;
        padding: 10px 50px 0 50px;
        position: relative;
        margin: 0 10px 0 0;
        font-size: 20px;
        text-decoration: none;
        color: #fff;
    }

再看效果,

哇,好像已经快可以用了! 嘿,别着急,后面还有很多要做的呢!

看一下文章的标题上的图片,我们还要它们加上向右的箭头,呀,这可怎么做呢?别急,总有办法的,看代码你就会恍然大悟:

#crumbs ul li a:after {
        content: "";
        border-top: 20px solid red;
        border-bottom: 20px solid red;
        border-left: 20px solid black;
        position: absolute;
        right: -20px;
        top: 0;
        z-index: 5;
    }

现在再来看一下变成什么样了呢

根据代码就可以知道,我们可以使用 css 的 :after 选择器来实现在后面加上一个没有内容的 border ,就是下面这张图这样

我们就可以在右边加上一个三角形了,效果图中我故意设置 border-left 的颜色是黑色,就是为了演示效果,最后改为#3498db,再把上下改为 transparent 就可以了:

我们把右边的三角形加上了,那么左边凹进去一个三角形该怎么做呢?估计聪明的你已经知道了

#crumbs ul li a:before {
        content: "";
        border-top: 20px solid #3498db;
        border-bottom: 20px solid #3498db;
        border-left: 20px solid white;
        position: absolute;
        left: 0;
        top: 0;
    }

看,效果已经出来了

其实这个时候已经可以基本满足我们的要求了,但是,我们并不满足于此,我们要把最左边和最右边变成半圆形,这样才更加美观

#crumbs ul li:first-child a {
        border-top-left-radius: 20px;
        border-bottom-left-radius: 20px;
    }
    
#crumbs ul li:first-child a:before {
        display: none;
    }

看代码知道我们要把第一个子节点的左边之前的样式去除掉,在根据 border-radius 来设置弧形,就可以实现左边半圆的效果:

然后最后一个节点右边半圆的样式也一样,不多说

#crumbs ul li:last-child a {
        padding-right: 60px;
        border-top-right-radius: 20px;
        border-bottom-right-radius: 20px;
    }
    
#crumbs ul li:last-child a:after {
        display: none;
    }

看,和文章标题图的样子是不是一样啦? 但是好像有哪里不一样? 对了!就是背景颜色!当鼠标移到当前标签的时候要把这个标签的背景颜色改变一下,这当然难不倒聪明的你啦~

#crumbs ul li a:hover {
        background: #fa5ba5;
    }
    
#crumbs ul li a:hover:after {
        border-left-color: #fa5ba5;
    }

#crumbs ul li a:hover:before {
        border-top-color: #fa5ba5;
        border-bottom-color: #fa5ba5;
    }

现在我们来看最终的样式:

是不是跟一开始的时候一样?

到这里一个基本的面包屑导航栏已经完成了!但是只是一种基本的实现方式,但是如果有其他需求,比如,看下图

这样的样式该怎么实现呢?跟上面的方式一样吗?看起来差别不大,就是没了背景,多了边框的线.但是实现方式和上面的还是有一定的区别的,并没有看起来的想象中的那么简单,前端的同学们可以自己去实践一下,我会在下一篇文章中写这种带边框的面包屑导航栏的实现和优化方式.

本文同步发布于同名微信公众号:WeCode365,有兴趣的同学可以来一波关注.

哆哆女性网宝贝起名字软件淘客网站制作app最伤感的句子给网络起名字女装品牌起姓名大全tddp毛发种植夏邑韵达期货交易周末休息吗百度小说排行淘宝seo优化是什么覆盖的意思孩子起名孩子起名深圳找网站建设公司起宾馆名字大全敏感是什么意思制作网站要求水暖店起名写给姓牛的男孩起名深圳电视台直播免费店起名网k8jd西甲国家德比袁姓女孩子起什么名字好听桂子飘香qq霸气网名女生八字四柱排盘算命深圳商业网站建设模板浙江建设厅网站官网淫娃重庆经典论坛淀粉肠小王子日销售额涨超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 网站制作 网站优化