简单的CSS下拉菜单制作方法

发布时间:2025-03-18 点击:15
鼠标悬停下拉菜单在网页中很常见,一般的下拉菜单都是通过 javascript 对菜单的显示和隐藏进行控制,其实用纯粹的css 也可以实现。用css下拉菜单的几点好处是,不需要考虑客户端浏览器是否禁用了 js,而且用 css下拉菜单效率比 js 要高,还可以方便地制定样式和定位。
css下拉菜单演示地址
首先写出 html 代码如下:
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>css下拉菜单title>
<link rel="stylesheet" type="text/css" href="test.css" />
head>
<body>
<ul id="navigation">
<li>
<a href="#">栏目1a>
<ul>
<li><a href="#">栏目1-->css下拉菜单1a>li>
<li><a href="#">栏目1-->css下拉菜单2a>li>
<li><a href="#">栏目1-->css下拉菜单3a>li>
<li><a href="#">栏目1-->css下拉菜单4a>li>
ul>
li>
<li>
<a href="#">栏目2a>
<ul>
<li><a href="#">栏目2-->菜单1a>li>
<li><a href="#">栏目2-->菜单2a>li>
<li><a href="#">栏目2-->菜单3a>li>
<li><a href="#">栏目2-->菜单4a>li>
<li><a href="#">栏目2-->菜单5a>li>
ul>
li>
<li>
<a href="#">栏目3a>
<ul>
<li><a href="#">栏目3-->css下拉菜单1a>li>
<li><a href="#">栏目3-->css下拉菜单2a>li>
<li><a href="#">栏目3-->css下拉菜单3a>li>
ul>
li>
ul>
body>
html>
在没有 css 的情况下,它显示为一个最基本的无序列表的样式:
下面编写 css,代码如下:
body {
font-family:verdana, sans-serif;
font-size:small;
}
#navigation , #navigation li ul{
padding:0;
margin:0;
list-style-type: none;
}
#navigation li {
float:left;
text-align:center;
position:relative;
}
#navigation li a:link, #navigation li a:visited {
display:block;
text-decoration:none;
color:#000;
width:120px;
height:40px;
line-height:40px;
border:1px solid #fff;
border-width:1px 1px 0 0;
background:#c5dbf2;
padding-left:10px;
}
#navigation li ul {
display: none;
}
/* 以下只支持非ie6浏览器 */
#navigation li:hover a {
color:#fff;
background:#2687eb;
}
#navigation li:hover ul {
display:block;
position:absolute;
top:40px;
margin-top:1px;
left:0;
width:120px;
}
#navigation li:hover ul li a {
display:block;
background:#c5dbf2;
color:#000;
height:20px;
line-height:20px;
padding:5px 10px;
width:110px;
}
#navigation li:hover ul li a:hover {
color:#fff;
background:#6b839c;
}
把 css 引入页面后,下拉菜单就做好了,效果是这样的(鼠标停在“栏目1”上的效果):
你可能注意到了,我在 css 代码中使用了 li:hover 这个伪类选择器,这在 firefox、opera 等浏览器中都没有问题,但是有一个很严重的问题就是:在 ie6 中,hover 伪类仅可用于 a 标签,li:hover 在 ie6 中是无效的。所以,这个下拉并没有在 ie6 中实现,我们需要针对 ie6 作出一些改进。既然它只支持 a:hover,那我们就想办法把需要控制的下拉菜单写进 标签中。
改进后的 html 代码如下:
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>css下拉菜单title>
head>
<body>
<ul id="navigation">
<li>
<a href="#">栏目1
<table><tr><td>
<ul>
<li><a href="#">栏目1-->css下拉菜单1a>li>
<li><a href="#">栏目1-->css下拉菜单2a>li>
<li><a href="#">栏目1-->css下拉菜单3a>li>
<li><a href="#">栏目1-->css下拉菜单4a>li>
ul>
td>tr>table>
li>
<li>
<a href="#">栏目2
<table><tr><td>
<ul>
<li><a href="#">栏目2-->菜单1a>li>
<li><a href="#">栏目2-->菜单2a>li>
<li><a href="#">栏目2-->菜单3a>li>
<li><a href="#">栏目2-->菜单4a>li>
<li><a href="#">栏目2-->菜单5a>li>
ul>
td>tr>table>
li>
<li>
<a href="#">栏目3
<table><tr><td>
<ul>
<li><a href="#">栏目3-->css下拉菜单1a>li>
<li><a href="#">栏目3-->css下拉菜单2a>li>
<li><a href="#">栏目3-->css下拉菜单3a>li>
ul>
td>tr>table>
,
li>
ul>
body>
html>
针对 ie6 的 css 代码如下:
body {
font-family:verdana, sans-serif;
font-size:small;
}
#navigation , #navigation li ul{
padding:0;
margin:0;
list-style-type: none;
}
#navigation li {
float:left;
text-align:center;
position:relative;
}
#navigation li a:link, #navigation li a:visited {
display:block;
text-decoration:none;
color:#000;
width:120px;
height:40px;
line-height:40px;
border:1px solid #fff;
border-width:1px 1px 0 0;
background:#c5dbf2;
padding-left:10px;
}
#navigation li ul{
display: none;
}
table {
margin:-1px;
border-collapse:collapse;
}
/* 以下针对ie6 */
#navigation li a:hover {
color:#fff;
background:#2687eb;
}
#navigation li a:hover ul {
display:block;
position:absolute;
top:40px;
margin-top:1px;
left:0;
width:120px;
}
#navigation li a:hover ul li a {
display:block;
background:#c5dbf2;
color:#000;
height:20px;
line-height:20px;
padding:5px 10px;
width:110px;
}
#navigation li a:hover ul li a:hover {
color:#fff;
background:#6b839c;
}
改进之后已经达到了我们预期的目的,在多种浏览器中都实现了鼠标悬停下拉菜单。
css下拉菜单演示地址
改进的地方主要有:针对 ie6 重新写了一个 css,命名为 testforie.css;通过 ie 和非 ie 浏览器的条件注释 实现了针对不同的浏览器设定 标签不同的结束位置,从而可以在 ie6 中通过 a:hover 来控制下拉菜单;把下拉菜单的

到此,用纯css下拉菜单就制作完成了。


公司网站制作流程是什么
合肥到吉林物流专线
泉州到巴音郭楞物流专线
哪些行业适合做软文推广营销?
厦门到沈阳物流专线
外贸网站设计中如何协调好图片
做网站前的市场分析
企业网站优化关键词选择4个基本原则