CSS 导航条

导航栏

拥有易用的导航条对于任何网站都很重要。

通过 CSS,您能够把乏味的 HTML 菜单转换为漂亮的导航栏。

导航栏 = 链接列表

导航栏需要标准的 HTML 作为基础。

在我们的例子中,将用标准的 HTML 列表来构建导航栏。

导航栏基本上是一个链接列表,因此使用 <ul> 和 <li> 元素是非常合适的:

实例

  1. <ul>
  2. <li><a href="default.asp">Home</a></li>
  3. <li><a href="news.asp">News</a></li>
  4. <li><a href="contact.asp">Contact</a></li>
  5. <li><a href="about.asp">About</a></li>
  6. </ul>

现在,让我们从列表中去掉圆点和外边距:

实例

  1. ul
  2. {
  3. list-style-type:none;
  4. margin:0;
  5. padding:0;
  6. }

例子解释:

  • list-style-type:none - 删除圆点。导航栏不需要列表项标记。
  • 把外边距和内边距设置为 0 可以去除浏览器的默认设定。

以上例子中的代码是用在垂直、水平导航栏中的标准代码。

垂直导航栏

如需构建垂直导航栏,我们只需要定义 <a> 元素的样式,除了上面的代码之外:

实例

  1. a
  2. {
  3. display:block;
  4. width:60px;
  5. }

例子解释:

  • display:block - 把链接显示为块元素可使整个链接区域可点击(不仅仅是文本),同时也允许我们规定宽度。
  • width:60px - 块元素默认占用全部可用宽度。我们需要规定 60 像素的宽度。

提示:请同时看一看我们完整样式的导航栏实例

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. ul
  6. {
  7. list-style-type:none;
  8. margin:0;
  9. padding:0;
  10. }
  11. a:link,a:visited
  12. {
  13. display:block;
  14. font-weight:bold;
  15. color:#FFFFFF;
  16. background-color:#bebebe;
  17. width:120px;
  18. text-align:center;
  19. padding:4px;
  20. text-decoration:none;
  21. text-transform:uppercase;
  22. }
  23. a:hover,a:active
  24. {
  25. background-color:#cc0000;
  26. }
  27. </style>
  28. </head>
  29. <body>
  30. <ul>
  31. <li><a href="#home">Home</a></li>
  32. <li><a href="#news">News</a></li>
  33. <li><a href="#contact">Contact</a></li>
  34. <li><a href="#about">About</a></li>
  35. </ul>
  36. </body>
  37. </html>

注释:请始终规定垂直导航栏中 <a> 元素的宽度。如果省略宽度,IE6 会产生意想不到的结果。

水平导航栏

有两种创建水平导航栏的方法。使用行内或浮动列表项。

两种方法都不错,但是如果您希望链接拥有相同的尺寸,就必须使用浮动方法。

行内列表项

除了上面的“标准”代码,构建水平导航栏的方法之一是将 <li> 元素规定为行内元素:

实例

  1. li
  2. {
  3. display:inline;
  4. }

例子解释:

display:inline; - 默认地,<li> 元素是块元素。在这里,我们去除了每个列表项前后的换行,以便让它们在一行中显示。

提示:请看一下我们完整样式的水平导航栏实例

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. ul
  6. {
  7. list-style-type:none;
  8. margin:0;
  9. padding:0;
  10. padding-top:6px;
  11. padding-bottom:6px;
  12. }
  13. li
  14. {
  15. display:inline;
  16. }
  17. a:link,a:visited
  18. {
  19. font-weight:bold;
  20. color:#FFFFFF;
  21. background-color:#98bf21;
  22. text-align:center;
  23. padding:6px;
  24. text-decoration:none;
  25. text-transform:uppercase;
  26. }
  27. a:hover,a:active
  28. {
  29. background-color:#7A991A;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <ul>
  35. <li><a href="#home">Home</a></li>
  36. <li><a href="#news">News</a></li>
  37. <li><a href="#contact">Contact</a></li>
  38. <li><a href="#about">About</a></li>
  39. </ul>
  40. <p><b>注释:</b>如果您只为 a 元素设置内边距(而不设置 ul 元素),那么链接会出现在 ul 元素之外。所以,我们为 ul 元素添加了 top 和 bottom 内边距。</p>
  41. </body>
  42. </html>

对列表项进行浮动

在上面的例子中,链接的宽度是不同的。

为了让所有链接拥有相等的宽度,浮动 <li> 元素并规定 <a> 元素的宽度:

实例

  1. li
  2. {
  3. float:left;
  4. }
  5. a
  6. {
  7. display:block;
  8. width:60px;
  9. }

例子解释:

  • float:left - 使用 float 来把块元素滑向彼此。
  • display:block - 把链接显示为块元素可使整个链接区域可点击(不仅仅是文本),同时也允许我们规定宽度。
  • width:60px - 由于块元素默认占用全部可用宽度,链接无法滑动至彼此相邻。我们需要规定 60 像素的宽度。

提示:请看一下我们完整样式的水平导航栏实例

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. ul
  6. {
  7. list-style-type:none;
  8. margin:0;
  9. padding:0;
  10. overflow:hidden;
  11. }
  12. li
  13. {
  14. float:left;
  15. }
  16. a:link,a:visited
  17. {
  18. display:block;
  19. width:120px;
  20. font-weight:bold;
  21. color:#FFFFFF;
  22. background-color:#bebebe;
  23. text-align:center;
  24. padding:4px;
  25. text-decoration:none;
  26. text-transform:uppercase;
  27. }
  28. a:hover,a:active
  29. {
  30. background-color:#cc0000;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <ul>
  36. <li><a href="#home">Home</a></li>
  37. <li><a href="#news">News</a></li>
  38. <li><a href="#contact">Contact</a></li>
  39. <li><a href="#about">About</a></li>
  40. </ul>
  41. </body>
  42. </html>