如何用css做下拉菜单

html-css032

如何用css做下拉菜单,第1张

纯CSS的下拉菜单,此处理解的意思就是

标签套

标签,然后再给

标签设置样式。在被套的

标签设置平时状态为隐藏,再等鼠标移动到上一个

标签时,将被套的

标签显示(样式:overflow:hidden

)。

贴一段网上摘的纯CSS下拉菜单(二级)

利用float制作兼容ie6纯css下来菜单

*

{

margin:0

padding:0

}

ul

{

list-style:none

}

a:hover

{color:#555

}

.nav

{

float:left

overflow:hidden

text-align:center

font-size:14px

}

.nav

dd

{

float:left

width:300px

margin:-888px

-150px

0

0

}

.nav

dd

a

{

float:left

margin-top:888px

display:block

position:relative

background:#eee

width:150px

height:30px

line-height:30px

border-bottom:1px

solid

#fff

}

.nav

a:hover

{

margin-right:1px

background:#3cf

}

.nav

dd

ul

{

float:left

font-size:0

z-index:888

}

.nav

dd

li

a

{

clear:left

width:150px

margin-top:0

font-size:14px

}

.nav

dd

li

a:hover

{

margin-right:1px

}

首页

关于我们

公司简介

公司文化

企业荣誉

联系我们

新闻动态

国内新闻

国外新闻

产品展示

111

222

你这代码写的比较乱啊 我帮你改了一下

这个导航适用于 IE7/8 firefox Safari Opera

唯一不适用于IE6,用纯css写导航必须有2套代码。

IE6不识别a之外的伪类。

或者用<!--[if IE 6]><!--[end if ]>嵌套一个table写法。

<!DOCTYPE PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "w3/TR/x1/DTD/x1-strict.dtd">

<xmlns="w3/1999/x">

<head>

<meta -equiv="Content-Type" content="text/charset=utf-8" />

<title>52css</title>

<style type=text/css>

ul, li {

list-style-type:none

padding:0

margin:0

}

#bar {

width:1000px

height:30px

border:2px solid black

}

#bar ul li {

float:left

padding:0 15px

border:1px solid red

height:25px

margin-left:13px

margin-top:3px

position:relative

}

#bar ul ul {

display:none

width:200px

position:absolute

top:26px

left:-15px

}

#bar ul li:hover ul {

display:block

}

</style>

</head>

<body>

<div id="bar">

<ul>

<li><a href="#">222222</a>

<ul>

<li class="displayli">33333333333333</li>

<li class="displayli">33333333333333</li>

<li class="displayli">33333333333333</li>

<li class="displayli">33333333333333</li>

<li class="displayli">33333333333333</li>

<li class="displayli">33333333333333</li>

</ul>

</li>

<li><a href="#">222222</a></li>

<li><a href="#">222222</a></li>

<li><a href="#">222222</a></li>

<li><a href="#">222222</a></li>

</ul>

</div>

</body>

</>

菜单是<a>, 下拉菜单的容器是<div class="drop-down">...</div>

然后利用a:focus + .dropdown{ ... } 来实现。

要点1:CSS如何实现影响其他元素?

要点2: 如何做出(伪)点击触发?

基本用 a:focus,个人感觉自然一点。当然如果失去焦点,下拉菜单容器也会相应地隐藏。

# HTML BODY 部分代码:

<body>

    <a href="#">Menu</a>

 <div class="drop-down" id="drop-down">

  <ul>

<li>Option 1</li>

                       <li>Option 2</li>

<li>Option 3</li>

<li>Option 4</li>

  </ul>

 </div>

</body>

#HTML CSS 部分代码:

html, body{

font-family: Arial, Helvetica, sans-serif

font-size:16px

}

a{

display: block

width:50px

border:1px solid #333

background-color:white

padding:3px

text-align: center

text-decoration: none

}

a:hover{  background-color:#EEE}

a:focus + .drop-down{  display: inline-block}

.drop-down{

display: none

}

ul{

border:1px solid #333

display: inline-block

margin-top:1px

padding:0px

}

ul>li{

height: auto

padding: 3px 10px

border-bottom: 1px solid #333

text-align: center

vertical-align: middle

}

ul>li:last-child{

border:0px solid transparent

}

ul>li:hover{

background-color:#DDD

}

-----------------------------------------------------------------------

最后实现效果: