700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【京东商城首页实战9】导航菜单栏和下拉列表

【京东商城首页实战9】导航菜单栏和下拉列表

时间:2020-01-28 18:22:21

相关推荐

【京东商城首页实战9】导航菜单栏和下拉列表

接下来开始做下面的部分,包括红色背景部分、导航菜单栏、右边的图片,如图:

图1

分析:

1.构架:全部商品分类是一个盒子、导航菜单是一个盒子,图片是一个盒子。

2.点击红色部分会出现下拉列表,从语义上讲它是定义列表。

3.导航菜单栏上有绿色小图标

1.左边下拉列表上部分

先做全部商品分类部分:

HTML代码:

<div class="jd-nav clearfix"><!--最外层盒子负责通栏,要清除浮动--><div class="w"><!--添加版心盒子--><div class="dropdown"><!--全部商品分类和下拉列表的父亲盒子--><div class="dt"><!--全部商品分类盒子,后面再做下拉列表盒子--><a href="#">全部商品分类</a></div></div></div></div>

CSS代码:

.jd-nav {width: 100%;height: 44px;border-bottom: 2px solid #B1191A;}/*效果1*/.dropdown {width: 210px;height: 44px;float: left;position: relative;z-index: 10;/*标准流的盒子层级是0,脱标的的盒子层级是1(浮动、定位).因为下拉列表会盖住其他的盒子,所以要单独设定层级*/overflow: visible;/*dropdown盒子有点特殊,它自身和父亲盒子一样大小,下拉列表实际上就是它的兄弟,只是溢出了父亲盒子。这里用overflow: visible;就是要溢出的兄弟显示出来*/}/*效果2*/

效果1:

效果2:

2.中间导航菜单栏制作

导航菜单用无序列表做。

HTML代码:

<div class="navitems"><ul><li><a href="#">服装城</a></li><li><a href="#">美妆馆</a></li><li><a href="#">超市</a></li><li><a href="#">全球购</a></li><li><a href="#">闪购</a></li><li class="new"><a href="#">团购</a></li><li><a href="#">拍卖</a></li><li><a href="#">金融</a></li><li><a href="#">智能</a></li></ul></div>

CSS代码:

.navitems {width: 680px;height: 44px;float: left;}.navitems li {float: left;}.navitems li a {display: block;color: #333;font:400 15px/44px "微软雅黑";padding:0 20px;}.navitems li a:hover {color: #B1191A;}/*效果3*/.navitems li.new {background: url(../images/new.jpg) no-repeat right top;/*设定一个单独的类,有盒子需要添加图标,就给所在的盒子添加类名即可*/}/*效果4*/

效果3:

效果4:

附上效果4上边的绿色图标:

插入右边的图片

右边的图片紧靠右侧版心,所以是右浮动。点击图片可以进入活动主页,里面应该包含一个a标签。

附上图片:

HTML代码:

<div class="bike"><a href="#"></a></div>

CSS代码:

.bike a {float: right;height: 44px;width: 140px;background:url(../images/bike.jpg) no-repeat;}

效果5:

3.下拉列表完整

在做导航菜单使已经做了一部分下拉列表,就是有红色背景的“全部商品分类”。这节重点说下拉列表的做法。

原理:

父盒子无法装下子盒子,子盒子会溢出。

分析样本图,从语义上讲“全部商品分类”和下面的列表是意义有关联,应该归入一个盒子。但是第二个盒子的显现又不是静态的。当它出现的时候,覆盖住下面的内容,当不出现的时候不占空间。要做出这样的效果,可以利用盒子溢出原理,因为隐藏溢出不占用空间。这样,后面就可以利用JS做交互效果:当点击第一个儿子,就overflow:visible;当鼠标离开时,overflow:hidden。

所以,处理这个案例时,就可以使第一个盒子的宽高和父盒子相同,第二个子盒子完全溢出父盒子外。

HTML代码:

<div class="dropdown"><div class="dt"><a href="#">全部商品分类</a></div><div class="dd"><div class="items"><h3>家用电器</h3><span>></span></div><div class="items"><h3>手机、数码、京东通信</h3><span>></span></div><div class="items"><h3>家用电器</h3><span>></span></div><div class="items"><h3>手机、数码、京东通信</h3><span>></span></div><div class="items"><h3>家用电器</h3><span>></span></div><div class="items"><h3>手机、数码、京东通信</h3><span>></span></div><div class="items"><h3>家用电器</h3><span>></span></div><div class="items"><h3>手机、数码、京东通信</h3><span>></span></div><div class="items"><h3>家用电器</h3><span>></span></div><div class="items"><h3>手机、数码、京东通信</h3><span>></span></div><div class="items"><h3>家用电器</h3><span>></span></div><div class="items"><h3>手机、数码、京东通信</h3><span>></span></div><div class="items"><h3>家用电器</h3><span>></span></div><div class="items"><h3>手机、数码、京东通信</h3><span>></span></div><div class="items"><h3>手机、数码、京东通信</h3><span>></span></div></div>

下拉效果1:

CSS代码:

.dropdown {width: 210px;height: 44px;float: left;position: relative;z-index: 10;/*标准流的盒子层级是0,脱标的的盒子层级是1(浮动、定位).因为下拉列表会盖住其他的盒子,所以要单独设定层级*/overflow: visible;/*dropdown盒子有点特殊,它自身和父亲盒子一样大小,下拉列表实际上就是它的兄弟,只是溢出了父亲盒子。这里用overflow: visible;就是要溢出的兄弟显示出来*/}.dropdown .dt a {display: block;font: 400 15px/44px "microsoft yahei";background-color: #B1191A;color: #fff;padding-left: 10px;/*文字和边框之间有距离*/}.dropdown .dd {height: 465px;/*先给第二个儿子设定宽高,宽高可由内容自动撑开,后面可以去掉*/background-color: #C81623;margin-top: 2px;/*第二个儿子没有压住祖父盒子的下border,所以下移2px*/}/*下拉效果2*/.dropdown .items {height: 31px;/*有行高撑开,这里的高可以删掉*/line-height: 31px;border-left: 1px solid #B61D1D;padding-left: 10px;/*左边距离dd盒子有10px间距*/color: #fff;font-size: 15px;font-family:"微软雅黑";/*给每个列表设置样式*/}/*下拉效果3*/.dropdown .items h3 {float: left;/*每个div里有两个元素,字向左浮动,>图标向右浮动*/}.dropdown .items span {float: right;margin-right: 15px;font-family: "宋体";font-weight: 600;/*给>图标设置样式*/}/*下拉效果4*/

下拉效果2:

下拉效果3:

下拉效果4:

好啦!导航菜单和下拉列表已经完成了,至此,京东网页也完成了一小半,成果如下图,感受一下,嘻嘻~:

谢谢大家,欢迎指正!欲知后事如何,且听明天分解。晚安!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。