CSS 垂直导航条


垂直导航条

如需构建垂直导航条,除了上一章中的代码外,还可以在列表中设置 <a> 元素的样式:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. ul {
  6. list-style-type: none;
  7. margin: 0;
  8. padding: 0;
  9. }
  10. li a {
  11. display: block;
  12. width: 60px;
  13. background-color: #dddddd;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <ul>
  19. <li><a href="#home">首页</a></li>
  20. <li><a href="#news">新闻</a></li>
  21. <li><a href="#contact">联系方式</a></li>
  22. <li><a href="#about">关于我们</a></li>
  23. </ul>
  24. <p>背景色被添加到链接以显示链接区域。</p>
  25. <p>请注意,整个链接区域都是可单击的,而不仅仅是文本。</p>
  26. </body>
  27. </html>
例子解释:

display: block; - 将链接显示为块元素可以使整个链接区域都可以被单击(而不仅仅是文本),我们还可以指定宽度(如果需要,还可以指定内边距、外边距、高度等)。

width: 60px; - 默认情况下,块元素会占用全部可用宽度。我们需要指定 60 像素的宽度。

您还可以设置 <ul> 的宽度,并删除 <a> 的宽度,因为当显示为块元素时,它们将占据可用的全部宽度。这将导致与我们之前的例子相同的结果:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. ul {
  6. list-style-type: none;
  7. margin: 0;
  8. padding: 0;
  9. width: 60px;
  10. }
  11. li a {
  12. display: block;
  13. background-color: #dddddd;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <ul>
  19. <li><a href="#home">首页</a></li>
  20. <li><a href="#news">新闻</a></li>
  21. <li><a href="#contact">联系方式</a></li>
  22. <li><a href="#about">关于我们</a></li>
  23. </ul>
  24. <p>背景色被添加到链接以显示链接区域。</p>
  25. <p>请注意,整个链接区域都是可单击的,而不仅仅是文本。</p>
  26. </body>
  27. </html>

垂直导航条实例

创建背景色为灰色的基础垂直导航条,并在用户将鼠标移到链接上时改变链接的背景色:

代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. ul {
  6. list-style-type: none;
  7. margin: 0;
  8. padding: 0;
  9. width: 200px;
  10. background-color: #f1f1f1;
  11. }
  12. li a {
  13. display: block;
  14. color: #000;
  15. padding: 8px 16px;
  16. text-decoration: none;
  17. }
  18. li a:hover {
  19. background-color: #555;
  20. color: white;
  21. }
  22. </style>
  23. </head>
  24. <body>
  25. <h1>垂直导航条</h1>
  26. <ul>
  27. <li><a href="#home">首页</a></li>
  28. <li><a href="#news">新闻</a></li>
  29. <li><a href="#contact">联系方式</a></li>
  30. <li><a href="#about">关于我们</a></li>
  31. </ul>
  32. </body>
  33. </html>

活动/当前导航链接

向当前链接添加 "active" 类,以使用户知道他/她在哪个页面上:

代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. ul {
  6. list-style-type: none;
  7. margin: 0;
  8. padding: 0;
  9. width: 200px;
  10. background-color: #f1f1f1;
  11. }
  12. li a {
  13. display: block;
  14. color: #000;
  15. padding: 8px 16px;
  16. text-decoration: none;
  17. }
  18. li a.active {
  19. background-color: #4CAF50;
  20. color: white;
  21. }
  22. li a:hover:not(.active) {
  23. background-color: #555;
  24. color: white;
  25. }
  26. </style>
  27. </head>
  28. <body>
  29. <h1>垂直导航条</h1>
  30. <p>在此例中,我们创建一个具有绿色背景色和白色文本的 "active" 类。该类将添加到 "Home" 链接。</p>
  31. <ul>
  32. <li><a class="active" href="#home">首页</a></li>
  33. <li><a href="#news">新闻</a></li>
  34. <li><a href="#contact">联系我们</a></li>
  35. <li><a href="#about">关于我们</a></li>
  36. </ul>
  37. </body>
  38. </html>

居中链接以及添加边框

text-align:center 添加到 <li> 或 <a>,使链接居中。

border 属性添加到 <ul>,在导航条周围添加边框。如果您还希望在导航条内添加边框,请为所有 <li> 元素添加 border-bottom,最后一个元素除外:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. ul {
  6. list-style-type: none;
  7. margin: 0;
  8. padding: 0;
  9. width: 200px;
  10. background-color: #f1f1f1;
  11. border: 1px solid #555;
  12. }
  13. li a {
  14. display: block;
  15. color: #000;
  16. padding: 8px 16px;
  17. text-decoration: none;
  18. }
  19. li {
  20. text-align: center;
  21. border-bottom: 1px solid #555;
  22. }
  23. li:last-child {
  24. border-bottom: none;
  25. }
  26. li a.active {
  27. background-color: #4CAF50;
  28. color: white;
  29. }
  30. li a:hover:not(.active) {
  31. background-color: #555;
  32. color: white;
  33. }
  34. </style>
  35. </head>
  36. <body>
  37. <h1>垂直导航条</h1>
  38. <p>在本例中,我们居中导航链接并为导航条添加边框:</p>
  39. <ul>
  40. <li><a class="active" href="#home">首页</a></li>
  41. <li><a href="#news">新闻</a></li>
  42. <li><a href="#contact">联系方式</a></li>
  43. <li><a href="#about">关于我们</a></li>
  44. </ul>
  45. </body>
  46. </html>

全高固定垂直导航条

创建全高的“粘性”侧面导航:

代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. html, body {
  6. font-family: Verdana,sans-serif;
  7. font-size: 15px;
  8. line-height: 1.5
  9. }
  10. body {
  11. margin: 0;
  12. }
  13. ul.vertical {
  14. list-style-type: none;
  15. margin: 0;
  16. padding: 0;
  17. width: 25%;
  18. background-color: #f1f1f1;
  19. position: fixed;
  20. height: 100%;
  21. overflow: auto;
  22. min-width: 80px;
  23. }
  24. ul.vertical li a {
  25. display: block;
  26. color: #000;
  27. padding: 8px 16px;
  28. text-decoration: none;
  29. }
  30. ul.vertical li a:hover:not(.active) {
  31. background-color: #555;
  32. color: white;
  33. }
  34. ul.vertical a.active {
  35. background-color: #04AA6D;
  36. color: white;
  37. }
  38. .main {
  39. margin-left: 25%;
  40. padding: 1px 16px;
  41. height: 500px;
  42. }
  43. @media screen and (max-width: 290px) {
  44. .main {
  45. margin-left: 35%;
  46. }
  47. }
  48. </style>
  49. </head>
  50. <body>
  51. <ul class="vertical">
  52. <li><a class="active" href="javascript:void(0)">首页</a></li>
  53. <li><a href="javascript:void(0)">新闻</a></li>
  54. <li><a href="javascript:void(0)">联系方式</a></li>
  55. <li><a href="javascript:void(0)">关于我们</a></li>
  56. </ul>
  57. <div class="main">
  58. <h2>固定高度的侧边导航条</h2>
  59. <h3>试着滚动这个区域,看看侧边导航条是如何粘在页面上的</h3>
  60. <p>一些文本..</p>
  61. <p>一些文本..</p>
  62. <p>一些文本..</p>
  63. <p>一些文本..</p>
  64. <p>一些文本..</p>
  65. <p>一些文本..</p>
  66. <p>一些文本..</p>
  67. <p>一些文本..</p>
  68. </div>
  69. </body>
  70. </html>

注意:本例在移动设备上可能无法正常工作。

分类导航