京东的左侧导航。如果用纯css如何做出子菜单成为一个整体的效果。如图。

html-css015

京东的左侧导航。如果用纯css如何做出子菜单成为一个整体的效果。如图。,第1张

用 a:hover span 试试,如果你 css 非常熟,能处理好很多细节问题,有可能能行,不断的嵌套 a:hover span ,下面这个如果你看得明白的话可以试试:

<ul>

<li>

<a>

家用电器

<span>

<strong>生活电器</strong>

<ul>

<li><a>净化器</a></li>

<li><a>净水设备</a></li>

<li><a>电风扇</a></li>

</sapn>

</a>

</li>

</ul>

核心就是一个链接里面放一个span,然后这个span里面又放二级菜单的链接:

<a>一级菜单<span><ul>二级菜单</ul></sapn></a>

然后先把 span 用 display:none隐藏起来,当一级菜单的链接发生 a:hover 时,又把 span 的 display 设置为 block 使其可见。

纯 css 不上 js 并且:不用表格、条件注释的话,那上面我说的这些就是唯一的办法了。

另一种可能是:上面我说的这些根本做不到你想要的效果,因为我也没试过这么复杂的嵌套会出现什么预料之外的东西要处理,考虑各浏览器兼容问题,能否处理掉这些问题是未知的。

你至少需要解决:

IE6 下 a:hover span 无效(要让其生效需要设置一个多余的空背景,方法自行百度)

各种 z-index 问题

span 的复杂定位

其他莫名其妙的问题

...

最终结果一切未知,有兴趣的话可以自己试着写代码。

要让id=menu的div紧贴id=wrap的div,#wrap的padding-left应为0px,其实才是#menu的margin-left(你的已设定)与padding-left为0px

要让每个li向左浮动的话应当让其block化 CSS文件修改如下

#wrap {

margin:auto

width:800px

padding-left:0px

}

#menu ul {

display:block

font-size: 14px

list-style: none

padding:0px

}

#menu {

background: url(menu-d.png) repeat-x top left

height: 36px

overflow: visible

padding-left: 0px

margin:0px

}

#menu li {

float: left

position: relative

z-index: 5

}