9.2 制作下拉菜单(1)


一、菜单的HTML结构

下面就来定义菜单的HTML结梅。思路是把整个菜单分为4组,每一组在平常状态时,只显示一级菜单项,当鼠标指针经过时,显示相应的子菜单。首先用ul和li定义出外层结构,然后在每个li项目中,使用dI定义一个菜单项,一级菜单文字定义为dt.子菜单的文字定义为dd。代码如下。

折叠展开XML/HTML 代码复制内容到剪贴板

  1. <body>
  2. <ul id="menu">
  3. <li>
  4. <dl>
  5. <dt><a href="#">Artech Studio</a></dt>
  6. <dd><a href="#">Web Dev</a></dd>
  7. <dd><a href="#">Web Design</a></dd>
  8. <dd><a href="#">Books</a></dd>
  9. <dd><a href="#">Contact Us</a></dd>
  10. </dl>
  11. </li>
  12. <li>
  13. <dl>
  14. <dt><a href="#">Artech Store</a></dt>
  15. <dd><a href="#">Books</a></dd>
  16. <dd><a href="#">DVDs</a></dd>
  17. <dd><a href="#">Movies</a></dd>
  18. <dd><a href="#">Service</a></dd>
  19. </dl>
  20. </li>
  21. <li>
  22. <dl>
  23. <dt><a href="#">Artech Achi</a></dt>
  24. <dd><a href="#">Landscape</a></dd>
  25. <dd><a href="#">Plan</a></dd>
  26. <dd><a href="#">Design</a></dd>
  27. <dd><a href="#">Maps</a></dd>
  28. </dl>
  29. </li>
  30. <li>
  31. <dl>
  32. <dt><a href="#">Artech Science</a></dt>
  33. <dd><a href="#">Physics</a></dd>
  34. <dd><a href="#">Maths</a></dd>
  35. <dd><a href="#">Chemistry</a></dd>
  36. <dd><a href="#">Courses</a></dd>
  37. </dl>
  38. </li>
  39. </ul>
  40. </body>

可以看到每组li中,第一行文字和后面的文字之间有所区别。下面就开始进行CSS样式设置了。

二、对整体进行设置

① 首先需要对菜单进行整体设置,为上面的代码中的ul设定一个id,代码如下。

折叠展开XML/HTML 代码复制内容到剪贴板

  1. <ul id="menu">

② 对ul做常规的CSS设置,将margin、padding清零;设定同定宽度610像素,因为每个菜单项要设为150像素宽,再加上一些间隔,所以这里设置610像素;此外清除列表项前面的圆点。lodidance.com

折叠展开CSS 代码复制内容到剪贴板

  1. #menu {
  2. margin:0;
  3. padding:0;
  4. width:610px;
  5. list-style-type:none;
  6. font:14px Arial;
  7. }

③ 对每一个li项目进行设置。设置微向左浮动,以实现横向排列;设定宽度、margin和padding,这里将右边的margin设置为l像素,使各个菜单项之间间隔l像素。然后,把定位方式设置为相对定位,也使它的下级埘象(dl)能够以它为基准进行绝对定位。

折叠展开CSS 代码复制内容到剪贴板

  1. #menu li {
  2. float:left;
  3. padding:0;
  4. margin:0 1px 0 0;
  5. width:150px;
  6. }

在浏览器中的效果如图1所示,可以看到菜单已经横向排列了。


图1 各li横向排列

读者可以网页学习网CSS教程资源中这个步骤完成后的“第9章/Final-1.htm”文件。

三、对dl进行设置

接下来,对dl对象设置样式,代码如下。

折叠展开CSS 代码复制内容到剪贴板

  1. /* 设置菜单项*/
  2. #menu li dl {
  3. width:150px;/*ie6*/
  4. margin: 0;
  5. padding: 0 0 10px 0;
  6. background: #cb6 url(images/bottom.gif)    no-repeatbottom left;
  7. }

此时在浏览器中的效果可以看到每个菜单项都增加了背景色,同时下端还产生了圆角的效果,这是如何实现的呢?

读者可以网页学习网CSS教程资源中这个步骤完成后的“第9章/Final-2.htm”文件。

分析:下面分析一下其中的这个语句:

折叠展开CSS 代码复制内容到剪贴板

  1. background: #cb6 url(images/bottom.gif) no-repeat bottom left;

这句话同时设置了背景色(#cb6)和背景图像(图像文件地址为“images/botiom.gif”)。CSS规定,在这种情况下,背景图像覆盖到的地方显示背景图像,而背景图一像投有覆盖的地方则显示背景色。这里的图像只显示一次,即不平铺(no-repeat),并且放置在菜单项的最底下(bottom)。此时,这个图像除了在两侧的圆角位置为白色之外.其他位置都是透明的,这样透明的位置就显示出了背景色,而圆角位置则显示出了两个圆角。

分析:在对dl的设置中,下面有10像素高的padding,圆角图像就在padding中。除了美观之外,padding的作用是,当菜单完全做好以后,子菜单只有在鼠标指针经过时才会显示出米。访问者要选择最下面的菜单项时,如果鼠标指针稍徽超出了下边界,菜单就会立即被隐藏起来,这样在易用性上就会存在缺陷。这里设置一个10像素的padding,这样即使稍稍超出菜单项范围,整个菜单也不至于立即消失。

读者可以试验以下,在Windows程序中,比如Word中,打开一和菜单以后,即使鼠标指针离开菜单范围,菜单也不会消失,只有当鼠标指针在莱单外单击一下,菜单才会消失。但是目前在网页上不能开发出和Windows程序一样的完善用户界面。近几年很多新技术的出现,包括CSS、Ajax等,都是在努力使Web应用的用户体硷更好。甚至达到本地程序的水平。因此,在进行Web设计和开发的时候,需要注意的不仅仅是美观和功能,实际上易用性等方面也在很多细节之中体现出来,希望读者能够注意到这一点。

四、对主菜单项(dt)进行设置

现在对主菜单项进行设置。lodidance.com

① 使用和上面相同的方法设置圆角,此外在主菜单项的下面设置一条暗红色的边框,作为和子菜单的分割,代码如下。

折叠展开CSS 代码复制内容到剪贴板

  1. #menu li dt {
  2. margin:0;
  3. padding: 5px;
  4. text-align:center;
  5. border-bottom:1px solid #b00;
  6. background:#ed8 url(images/top.gif) no-repeat top left;
  7. }

② 对主菜单项的连接文字进行设置,都是常规设置,代码如下。

折叠展开CSS 代码复制内容到剪贴板

  1. #menu li dt a ,#menu li dt a:visited {
  2. display:block;
  3. color:#333;
  4. text-decoration:none;
  5. }

此时,在浏览器中的效果如图1所示,可以看到,下拉菜单的雏形已经具备了。


图2 设置dt后的效果

读者可以参考网页学习网CSS教程资源中这个步骤完成后的“第9章/final-3.htm”文件。

点击下载第8~17章CSS教程资源 返回《CSS教程布局之道》教程列表

编辑:网页学习网
本文地址:http://www.lodidance.com/css/jc/730.html

9.2 制作下拉菜单(1),布布扣,bubuko.com

时间: 2024-12-30 05:04:10

9.2 制作下拉菜单(1)的相关文章

制作下拉菜单(PopupList)

怎样判断是否应当使用下拉菜单 下拉菜单,就是将一系列的选项隐藏,通过单击某一个控件将会弹出一个包含这些选项的列表,在其中选择想要的选项.这样做不但可以节省屏幕空间,也可以让用户在进行选择时更加方便快捷. 下拉菜单本质上还是一个单选框,与Toggle的功能有一些类似,对于下拉菜单玩家必须选择一个选项(有一个默认的初始选项),在同一时间也只能选择一个选项(单选性质).在游戏开发过程中,如果碰到了以下特点的需求,就可以考虑用下拉菜单了. (1)有一系列选项需要玩家做出选择,这些选项是有限多的. (2)

jQuery+Superfish制作下拉菜单

superfish制作下拉菜单真的很方便而好很好用,而且还可以通过Superfish提供的参数来控制下拉菜单的不同效果,而且他没有层级限制,换句话说可以通过Superfish来写你想要的层级菜单. 官方帮助文档: http://users.tpg.com.au/j_birch/plugins/superfish/#getting-started Begin with a working pure CSS dropdown menu based on nested unordered lists.

如何为EXCEL单元格制作下拉菜单

如何为EXCEL中的某列制作下拉菜单 下面用两种方法介绍下拉菜单的实现: 第一种方法比较简单,如果下拉菜单更改的不频繁,可以采用:第二种方法更适合菜单更改频繁的情况. 注意:如果点击单元格时右侧没有出现下拉的按钮,可能是格式丢失,可以通过复制上面单元格的方法来修复. 如何制作下拉菜单(以下内容以EXCEL2007为准,版本不同可能造成操作步骤不同) A. 先做好一个表格,如下图: B. 选择需要制作下拉菜单的列中的第一行(如性别列中的第一行,非标题行),点击菜单中[数据]-[数据有效性]-[数据

9.3 制作下拉菜单(2)

一.对子菜单项(dd)进行设置 设置子菜单项的样式分为3步. ① 首先对每个子菜单项,也就是dd元素进行常规设置,包括文字颜色.背景色等,代码如下. 折叠展开CSS 代码复制内容到剪贴板 /* 设置菜单项的dd */ #menu li dd { margin:0; padding:0; color: #fff; background: #47a; } ② 为了使最下面的dd的下端和dI的下侧padding之间有一条暗红色分割线,设置1像素的下边框,代码如下.它在视觉上与上面的分割线相呼应,同时也

利用CSS制作下拉菜单

利用CSS制作下拉菜单 1.定义一个div,给div一个id或class,给div一个样式. eg:<div id="menu"></div> /*css #menu{ width:1024px; //给div定义一个宽度 height:40px; //给div定义一个高度 margin:0 auto; //让div居中显示 background-color:#eee; //给div一个背景颜色 } */ 2.制作下拉菜单所需的无序列表(ul). eg:<

Html5+Css3制作下拉菜单的三种方式

一.渐变式改变ol的高度 1.外部为ul标签,在每个li里嵌套一个ol列表2.设置外部li左浮动,内部ol标签绝对定位,外部li标签相对定位3.设置ol的高为0,溢出隐藏4.外部li标签:hover 时,设置ol的高度,transition渐变 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>&l

纯CSS制作下拉菜单

<style> body{padding:0;margin:0;width:100%;height:100%;color:#111} a{color:#111;text-decoration:none} ul,li{list-style:none;padding:0;margin:0} .nav{width:1000px;margin:0 auto;height:28px;line-height:28px} .nav li{width:100px;background:#ccc;border:

制作excel下拉菜单

1.选中excel中需要制作下拉菜单的单元格/列/行,点击‘数据’——'数据验证': 2.允许选择'序列',来源中手动输入需要的内容,以逗号(,)分割:  3.如下图,此列都具有下拉选择的功能: 原文地址:https://www.cnblogs.com/canglongdao/p/12080253.html

NGUI 3.9.0 Tween实现Toggle点击下拉菜单(游戏中常见的边角主菜单入口)

单机游戏中这个熟悉的按钮,会弹出如下一样的菜单,相信初次看到的,肯定会很惊奇,That's Great!接下来让我告诉大家其中的做法. 1.创建Toggle ,前景图(Background)为,CheckMark 为.(两个为Sprite,从图集中选取,关于如何添加Sprite与制作图集,在这里不做主要叙述了) 2.制作下拉菜单,(1)创建一个Panel作为父容器.(2)在Panel下面添加Sprite,命名为MenuListPanelBkSprite,此为下拉菜单的背景图片.(3)在MenuL