【京东商城首页实战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:
这里写图片描述

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

这里写图片描述

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

  • 9
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
下面是一个简单的纯 CSS 导航下拉列表的示例: ``` /* 导航栏样式 */ .navbar { background-color: #333; overflow: hidden; } /* 链接样式 */ .navbar a { float: left; color: #f2f2f2; text-align: center; padding: 14px 16px; text-decoration: none; } /* 下拉列表容器 */ .dropdown { float: left; overflow: hidden; } /* 下拉列表按钮 */ .dropdown .dropbtn { font-size: 16px; border: none; outline: none; color: white; padding: 14px 16px; background-color: inherit; margin: 0; } /* 鼠标悬浮时下拉列表按钮样式 */ .navbar a:hover, .dropdown:hover .dropbtn { background-color: #ddd; color: black; } /* 下拉列表内容 */ .dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } /* 链接在下拉列表中的样式 */ .dropdown-content a { float: none; color: black; padding: 12px 16px; text-decoration: none; display: block; text-align: left; } /* 鼠标悬浮在下拉列表中的链接样式 */ .dropdown-content a:hover { background-color: #ddd; } /* 显示下拉列表 */ .dropdown:hover .dropdown-content { display: block; } ``` 使用代码示例: ``` <div class="navbar"> <a href="#">Home</a> <a href="#">About</a> <div class="dropdown"> <button class="dropbtn">Dropdown <i class="fa fa-caret-down"></i> </button> <div class="dropdown-content"> <a href="#">Link 1</a> <a href="#">Link 2</a> <a href="#">Link 3</a> </div> </div> </div> ``` 在上面的示例中,`.navbar` 是整个导航栏的容器,`.dropdown` 是下拉列表的容器,`.dropbtn` 是下拉列表的按钮。使用 `:hover` 选择器来控制鼠标悬浮时的样式。`.dropdown-content` 是下拉列表的内容,使用 `display: none` 属性来隐藏它,使用 `display: block` 属性来显示它。 你可以根据自己的需求修改样式和内容。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值