当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > CSS网页布局入门教程13:下拉及多级弹出式菜单

CSS样式表
CSS网页设计 IE8和IE7共存
CSS2 打印属性让打印HTML文档不出问题
制作网页中设计段落缩进的方法
CSS border 属性使用说明
CSS border-style 属性使用方法
CSS border-color 属性使用方法
CSS border-width 属性使用教程
CSS padding属性定义边内补白
CSS margin 属性定义边外补白
网页布局教程 掌握CSS网页布局属性
css 背景样式属性说明
span margin 设置生效
html 滚动条在IE6和IE7中兼容性问题
IE6 两个div有间隙的问题(IE 3px bug)
CSS 数字和字母将容器撑大问题解决
换个角度看页面重构中的语义化
DIY属于个人开发使用的CSS Reset
CSS 空格引起网页布局间距问题
CSS 网页制作时遇到问题的快速参考技巧
css li 去掉点的样式写法

CSS样式表 中的 CSS网页布局入门教程13:下拉及多级弹出式菜单


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 61 ::
收藏到网摘: n/a

下拉及弹出式菜单是网站设计中常用导航形式,这种菜单形式能够充分利用页面现在空间隐藏与显示更多内容,并能对内容进行合理的分类显示,是一种非常优秀的导航形式。
  早期的下拉或弹出式菜单通过隐藏的layer或div来实现内容的隐藏,通过JavaScript脚本来响应用户的操作,目前也采用JavaScript+div或其它元素的形式来制作此类导航,不同的是整个导航都将使用符合标准的css布局来打造,不再使用表格来制作菜单,下拉式菜单是上面提到的横向导航与纵向导航的结合,而且通过css对于属性的众多支持,同一个菜单不再需要多个div相互配合完成,使用css布局来制作下拉菜单元,甚至可以直接控制ul或li元素,现在来尝试一个最简单的下拉菜单的制作,需要补充的是,下拉式菜单的实现利用了很多JavaScript技术,在这里对JavaScript技术不作过多的语法上的综合了解,只想通过现有的实例来告诉大家由于css元素属性的灵活性,而使用制作网页上的元素更加简单方便。先看一下目前所设计的导航的XHTML部分代码:
<ul id="nav">
<li><a href="">文章</a>
<ul>
<li><a href="">CSS教程</a></li>
<li><a href="">DOM教程</a></li>
<li><a href="">XML教程</a></li>
<li><a href="">FLASH教程</a></li>
</ul>
</li>
<li><a href="">参考</a>
<ul>
<li><a href="">XHTML</a></li>
<li><a href="">XML</a></li>
<li><a href="">CSS</a></li>
</ul>
</li>
<li><a href="">BLOG</a>
<ul>
<li><a href="">全部</a></li>
<li><a href="">网页技术</a></li>
<li><a href="">UI技术</a></li>
<li><a href="">FLASH技术</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="">摇滚</a></li>
<li><a href="">纯音乐</a></li>
<li><a href="">古典金曲</a></li>
<li><a href="">电影原声</a></li>
</ul>
  一个标准的采用ul结构的菜单构成,但与前面所不同的是,这里的代码结构涉及嵌套,在第一层的li之间插入了另一个ul的结构,这就是多级菜单的一个代码构成模式,XHTML代码允许通过嵌套元素来实现想要的效果或是结构。下一步,我们尝试编写一些简单的css样式让菜单变成所希望的横向式:
ul { padding:0; margin:0; list-style:none;}
li { float:left; width:100px;}
  第一步,对导航系统热热闹闹有ul元素进行基本设置,list-style:none属性能够帮助我们去掉ul中的所有圆点标识。list-style属性拥有其它更丰富的使用方法,将在后面的列表元素中重点了解。
  我们希望导航是横向的通过对li设置float:left属性,将所有的li向左浮动,形成了横向的布局,并尝试使用每个li的宽度为100px,继续编写代码:

li ul { display:none; top:20px;}
  li ul的定义在这里所指的是所有li下面的ul元素,除了顶级的ul元素外,所有li下面定义的ul元素都将受到这部分样式的定义。在这里使用top属性设置了整个ul的上边距,并使用display:none让这部分被了起来。css中的怕有元素基本上都可以使用display属性来控制显示还是隐藏。

li:hover ul,li.over ul { display:block;}
  li:hover ul定义了li元素下的ul元素。通过逗号分隔,让这两种情况下都能使用display:block属性,display:block属性和display:none属性刚好相反,一个是隐藏,一个是显示,当设置为display:block时,不仅其指派的元素将显示,而且还显示成一个块状,如果不进行display:block时,元素只会按自己的内容在屏幕上占有的区域进行显示,而使用display:block时,元素将自己形成一个广块作为自己的点位符,这种设置对于做大按钮来说是非常方便的。
  在最下边的预览内代码你可以看到,里边加上了和段js代码,它是用来控制在IE浏览器下显示下拉菜单的,本来li:hover ul这句是可以的,但IE对css的支持还还完善,所以需要借助JS来控制。
  下面我们尝试给下拉菜单增加一些样式:
ul li a { display:block; font-size:12px; border:1px solid #ccc; margin-top:2px; margin-left:3px; padding:3px; text-decoration:none; color:#777;}
ul li a:hover { background-color:#ddd;}
  css布局的下拉菜单控制重点在于对元素的隐藏与显示。
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]