CSS技巧分享:如何用css制作横排二级下拉菜单

html-css022

CSS技巧分享:如何用css制作横排二级下拉菜单,第1张

工具/材料

notepad++

浏览器

打开Notepad++,先输入个页面框架

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<hade>

</hade>

<body>

</body>

框架好了,那么就该定义页面的title,关键词keyword,和描述description

<meta charset="UTF-8" content="text/html" http-equiv="content-type">

<title>纯css二级导航下拉菜单</title>

<meta name="keyword" content="搜狗略懂">

<meta name="description" content="描述">

这些内容只能在<head></head>中完成。

定义页面使用的css样式,也是需要在<head>里定义的。

<style type="text/css">

* {

margin:0

padding:0

}

.jiao ul li a:hover{

color:#red

}

ul, li {

list-style:none

}

a {

text-decoration:none

}

.jiao {

border:5px solid #pink

border-right:none

overflow:hidden

float:left

margin:200px 0 0 600px

}

.jiao ul li ul li a {

border-right:solid

border-top:2px dotted #666

background:#black

}

.jiao>ul>li { float:left}

.jiao ul li a { width:150pxheight:80pxtext-align:centerline-height:100pxdisplay:blockborder-right:5px solid #redbackground:#redcolor:#red}

.jiao ul li ul { position:absolutedisplay:none}

.jiao ul li:hover ul{ display:block}

.jiao>ul>li>ul>li { float:none}

<!--nav>ul只选择nav下一级里面的ul元素

nav ul选择nav内所包含的所有ul元素

nav>ul比nav ul限定更严格,必须后面的元素只比前面的低一个级别。

这里根据你的需求来自己定义。

-->

</style>

添加一个DIV标签,在页面中划分出一个块来,用来显示。

div中所用的样式为刚才咱们声明的样式“jiao”这个盒子来描述

然后使用无序标签<ul>+样式<li>来实现模块。

<div class="jiao">

<ul>

<li><a href="#">搜狗略懂</a>

<ul>

<li><a href="#">搜狗问问</a></li>

<li><a href="#">搜狗输入法</a></li>

<li><a href="#">搜狗浏览器</a></li>

<li><a href="#">搜狐</a></li>

</ul>

</div>

放上全部的代码吧,可以参考一下啊,

<!DOCTYPE html >

<html xmlns="http://www.w3.org/1999/xhtml">//允许你通过一个网址来识别你的标记

<head>

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

<meta name="keyword" content="利用css实现下拉菜单">

<meta name="description" content="搜狗略懂、css分享">

<title>css实现下拉导航栏菜单</title>

<style type="text/css">

* {

margin:0

padding:0

}

.jiao ul li a:hover{

color:#red

}

ul, li {

list-style:none

}

a {

text-decoration:none

}

.jiao {

border:5px solid #pink

border-right:none

overflow:hidden

float:left

margin:200px 0 0 600px

}

.jiao ul li ul li a {

border-right:solid

border-top:2px dotted #666

background:#black

}

.jiao>ul>li { float:left}

.jiao ul li a { width:150pxheight:80pxtext-align:centerline-height:100pxdisplay:blockborder-right:5px solid #redbackground:#redcolor:#red}

.jiao ul li ul { position:absolutedisplay:none}

.jiao ul li:hover ul{ display:block}

.jiao>ul>li>ul>li { float:none}

<!--nav>ul只选择nav下一级里面的ul元素

nav ul选择nav内所包含的所有ul元素

nav>ul比nav ul限定更严格,必须后面的元素只比前面的低一个级别。

这里根据你的需求来自己定义。

-->

</style>

</head>

<body>

<div class="jiao">

<ul>

<li><a href="#">搜狗略懂</a>

<ul>

<li><a href="#">搜狗问问</a></li>

<li><a href="#">搜狗输入法</a></li>

<li><a href="#">搜狗浏览器</a></li>

<li><a href="#">搜狐</a></li>

</ul>

</li>

</ul>

</div>

</body>

</html>

如果要添加更多的菜单,只需要后边继续添加<ul>/<li>即可

特别提示

写代码过程中一定要记得换行,开头留空,否则过后找东西,连你自己都不知道写的是什么。何谈从哪里找起?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">/*声明是XHTML1.0标准*/

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />/*声明UTF-8编码*/

<meta name="robots" content="all" />

<title></title>

<style type="text/css">

*{margin:0padding:0} /*所有元素内外边距为0*/

.menu{font-size:12pxposition:relativez-index:100} /*menu下的元素字体为12,设定相对定位点,他的子元素会以他的左上角为基准移动,设定层位置100,目的是保持在最前面*/

.menu ul{list-style:none} /*清除UL默认属性,无序列表前面的点,*/

.menu li {float:leftposition:relative} /*一级分类元素左浮动,目的是让他们横排,并设置相对定位点,*/

.menu ul ul {visibility:hiddenposition:absoluteleft:3pxtop:23px} //y设定二级分类默认隐藏,绝对定位于上级元素,也就是menu ul下的li,横排的一级分类,距上23,左3*/

.menu table {position:absolutetop:0left:0} /*这个是IE6下的二级分类,因为IE6只识别a的伪类*/

.menu ul li:hover ul,

.menu ul a:hover ul{visibility:visible} /*鼠标移上去,显示二级分类,上面一行是IE7以上,下面是IE6的*/

.menu a{display:blockborder:1px solid #aaabackground:#cacacapadding:2px 10pxmargin:3pxcolor:#ffftext-decoration:none} /*把menu下的链接a 转换为区块,边框1实线,灰色,背景也是灰色,内边距上下为2左右为10,外边距为3 ,颜色白色,*/

.menu a:hover{background:#fafafacolor:#000border:1px solid #000} /*鼠标移上去一级分类背影浅灰色,颜色黑色,主要指字体的,边框黑色*/

.menu ul ul{}

.menu ul ul li {clear:bothtext-align:leftfont-size:12px} /*二级分类清除浮动,目的是让它们竖排,左对齐,字号12*/

.menu ul ul li a{display:blockwidth:100pxheight:15pxmargin:0border:0border-bottom:1px solid #858585} /*转换二级分类的链接a为区块,设置大小,清除边距,设置下边框为灰色,*/

.menu ul ul li a:hover{border:0background:#fafafaborder-bottom:1px solid #fff}

</style>/*鼠标移上去后,清除边框,设置背景色为浅灰色,下边框为白色*/

</head>

<body>

<div class="menu">

<ul>

<li><a href="#">首页

<!--[if IE 7]><!--></a><!--<![endif]-->

<!--[if lte IE 6]><table><tr><td><![endif]-->/*里面加个TABLE是为了撑开链接边上空间,IE6以上可以直接设A的大小*/

<ul>

<li><a href="#">首页一</a></li>

<li><a href="#">首页二</a></li>

<li><a href="">首页三</a></li>

</ul>

<!--[if lte IE 6]></td></tr></table></a><![endif]-->

</li>

<li><a href="#">栏目二

<!--[if IE 7]><!--></a><!--<![endif]-->

<!--[if lte IE 6]><table><tr><td><![endif]-->

<ul>

<li><a href="#">二级栏目</a></li>

<li><a href="#">二级栏目</a></li>

</ul>

<!--[if lte IE 6]></td></tr></table></a><![endif]-->

</li>

<li><a href="#">栏目三

<!--[if IE 7]><!--></a><!--<![endif]-->

<!--[if lte IE 6]><table><tr><td><![endif]-->

<ul>

<li><a href="#">二级栏目</a></li>

<li><a href="#">二级栏目</a></li>

</ul>

<!--[if lte IE 6]></td></tr></table></a><![endif]-->

</li>

<li><a href="#">栏目四</a></li>

</ul>

</div>

<div style="clear:both">/*清除浮动,目的是二级分类弹出不会挤跑下面的文字*/

我就不跑我就不跑我就不跑我就不跑我就不跑我就不跑我就不跑我就不跑我就不跑<br />

我就不跑我就不跑我就不跑我就不跑我就不跑我就不跑我就不跑我就不跑我就不跑<br />

</div>

</body>

</html>

程序输入如下:

<div id="menu">

<br/>

<ul>

<li>..</li>

<li>..</li>

<li>..</li>

</ul>

</div>

#menu{

overflow:hidden

height:20px}

#menu:hover {

height:100px}

选择鼠标指针浮动在其上的元素,并设置其样式:

a:hover{

background-color:yellow}

对于HTML 部分:

可以使用任何的 HTML 元素来打开下拉菜单,如:<span>, 或 a <button>元素。使用容器元素 (如: <div>) 来创建下拉菜单的内容,并放在任何你想放的位置上。使用 <div>元素来包裹这些元素,并使用 CSS 来设置下拉内容的样式。

对于CSS 部分:

.dropdown 类使用 position:relative, 这将设置下拉菜单的内容放置在下拉按钮 (使用 position:absolute) 的右下角位置。