CSS 网站布局


网站布局

网站通常分为页眉、菜单、内容和页脚:

页眉
导航菜单
内容
主目录
内容

有很多不同的布局设计可供选择。但是,以上结构是最常见的结构之一,我们将在本教程中对其进行仔细研究。


页眉

页眉(header)通常位于网站顶部(或顶部导航菜单的正下方)。它通常包含徽标(logo)或网站名称:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>CSS 网站布局</title>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <style>
  8. body {
  9. margin: 0;
  10. }
  11. /* Style the header */
  12. .header {
  13. background-color: #f1f1f1;
  14. padding: 20px;
  15. text-align: center;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <div class="header">
  21. <h1>页眉</h1>
  22. </div>
  23. </body>
  24. </html>

导航栏

导航栏包含链接列表,以帮助访问者浏览您的网站:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>CSS 网站布局</title>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <style>
  8. * {
  9. box-sizing: border-box;
  10. }
  11. body {
  12. margin: 0;
  13. }
  14. /* 标题样式 */
  15. .header {
  16. background-color: #f1f1f1;
  17. padding: 20px;
  18. text-align: center;
  19. }
  20. /* 顶部导航条样式 */
  21. .topnav {
  22. overflow: hidden;
  23. background-color: #333;
  24. }
  25. /* 顶部导航条链接样式 */
  26. .topnav a {
  27. float: left;
  28. display: block;
  29. color: #f2f2f2;
  30. text-align: center;
  31. padding: 14px 16px;
  32. text-decoration: none;
  33. }
  34. /* 修改鼠标悬停颜色 */
  35. .topnav a:hover {
  36. background-color: #ddd;
  37. color: black;
  38. }
  39. </style>
  40. </head>
  41. <body>
  42. <div class="header">
  43. <h1>页眉</h1>
  44. </div>
  45. <div class="topnav">
  46. <a href="#">链接</a>
  47. <a href="#">链接</a>
  48. <a href="#">链接</a>
  49. </div>
  50. </body>
  51. </html>

内容

使用哪种布局通常取决于您的目标用户。最常见的布局是以下布局之一(或将它们组合在一起):

  • 1-列布局(通常用于移动浏览器)
  • 2-列布局(通常用于平板电脑和笔记本电脑)
  • 3-列布局 (仅用于台式机)

1-列布局:

2-列布局:

3-列布局:

我们将创建 3 列布局,并在较小的屏幕上将其更改为 1 列布局:

  1. /* 创建三个相等的列,它们彼此相邻浮动 */
  2. .column {
  3. float: left;
  4. width: 33.33%;
  5. }
  6. /* 在列后清除浮动 */
  7. .row:after {
  8. content: "";
  9. display: table;
  10. clear: both;
  11. }
  12. /* 响应式布局 - 使三列堆叠,而不是在较小的屏幕(宽度为 600 像素或更小)上并排 */
  13. @media screen and (max-width: 600px) {
  14. .column {
  15. width: 100%;
  16. }
  17. }

结果如下:

这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。

这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。

这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。

完整代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>CSS Website Layout</title>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <style>
  8. * {
  9. box-sizing: border-box;
  10. }
  11. body {
  12. margin: 0;
  13. }
  14. /* 标题样式 */
  15. .header {
  16. background-color: #f1f1f1;
  17. padding: 20px;
  18. text-align: center;
  19. }
  20. /* 导航条样式 */
  21. .topnav {
  22. overflow: hidden;
  23. background-color: #333;
  24. }
  25. /* 导航条链接 */
  26. .topnav a {
  27. float: left;
  28. display: block;
  29. color: #f2f2f2;
  30. text-align: center;
  31. padding: 14px 16px;
  32. text-decoration: none;
  33. }
  34. /* 改变悬停样式 */
  35. .topnav a:hover {
  36. background-color: #ddd;
  37. color: black;
  38. }
  39. /* 创建平行的3个列 */
  40. .column {
  41. float: left;
  42. width: 33.33%;
  43. padding: 15px;
  44. }
  45. /* 在列的后面清除列的浮动效果 */
  46. .row:after {
  47. content: "";
  48. display: table;
  49. clear: both;
  50. }
  51. /* 响应式布局-使三列堆叠在一起,而不是相邻 */
  52. @media screen and (max-width:600px) {
  53. .column {
  54. width: 100%;
  55. }
  56. }
  57. </style>
  58. </head>
  59. <body>
  60. <div class="header">
  61. <h1>标题</h1>
  62. <p>调整浏览器窗口的大小以查看响应效果。</p>
  63. </div>
  64. <div class="topnav">
  65. <a href="#">链接 1</a>
  66. <a href="#">链接 2</a>
  67. <a href="#">链接 3</a>
  68. </div>
  69. <div class="row">
  70. <div class="column">
  71. <h2>列 1</h2>
  72. <p>这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。</p>
  73. </div>
  74. <div class="column">
  75. <h2>列 2</h2>
  76. <p>这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。</p>
  77. </div>
  78. <div class="column">
  79. <h2>列 3</h2>
  80. <p>这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。这是一些文本。</p>
  81. </div>
  82. </div>
  83. </body>
  84. </html>

提示:要创建两列布局,请将宽度更改为50%。要创建4列布局,请使用25%等。

提示:你想知道@media规则是如何工作的吗?阅读更多关于它在我们的CSS媒体查询一章。

提示:创建列布局的一种更现代的方法是使用 CSS Flexbox。但是,Internet Explorer 10和早期版本不支持此功能。如果您需要IE6-10支持,请使用float(如上所示)。

要了解更多关于 flexiblebox 布局模块的信息,请访问本站的 CSS Flexbox 章节。

不相等的栏

主要内容(main content)是您网站上最大、最重要的部分。

列宽不相等的情况很常见,因为大部分空间都为主内容保留。附属内容(如果有)通常用作替代导航或指定与主要内容有关的信息。您可以随意更改宽度,只要记住它的总和应为 100%:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>CSS 网站布局</title>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <style>
  8. * {
  9. box-sizing: border-box;
  10. }
  11. body {
  12. margin: 0;
  13. }
  14. .header {
  15. background-color: #f1f1f1;
  16. padding: 20px;
  17. text-align: center;
  18. }
  19. .topnav {
  20. overflow: hidden;
  21. background-color: #333;
  22. }
  23. .topnav a {
  24. float: left;
  25. display: block;
  26. color: #f2f2f2;
  27. text-align: center;
  28. padding: 14px 16px;
  29. text-decoration: none;
  30. }
  31. .topnav a:hover {
  32. background-color: #ddd;
  33. color: black;
  34. }
  35. .column {
  36. float: left;
  37. padding: 10px;
  38. }
  39. .column.side {
  40. width: 25%;
  41. }
  42. .column.middle {
  43. width: 50%;
  44. }
  45. .row:after {
  46. content: "";
  47. display: table;
  48. clear: both;
  49. }
  50. @media screen and (max-width: 600px) {
  51. .column.side, .column.middle {
  52. width: 100%;
  53. }
  54. }
  55. </style>
  56. </head>
  57. <body>
  58. <div class="header">
  59. <h1>标题</h1>
  60. <p>调整浏览器窗口的大小以查看响应效果。</p>
  61. </div>
  62. <div class="topnav">
  63. <a href="#">链接 1</a>
  64. <a href="#">链接 2</a>
  65. <a href="#">链接 3</a>
  66. </div>
  67. <div class="row">
  68. <div class="column side">
  69. <h2>边栏</h2>
  70. <p>这里是边栏的内容。这里是边栏的内容。这里是边栏的内容。这里是边栏的内容。这里是边栏的内容。这里是边栏的内容。</p>
  71. </div>
  72. <div class="column middle">
  73. <h2>主要内容</h2>
  74. <p>这里是正文的内容。这里是正文的内容。这里是正文的内容。这里是正文的内容。这里是正文的内容。这里是正文的内容。这里是正文的内容。这里是正文的内容。</p>
  75. <p>这里是正文的内容。这里是正文的内容。这里是正文的内容。这里是正文的内容。这里是正文的内容。这里是正文的内容。这里是正文的内容。</p>
  76. </div>
  77. <div class="column side">
  78. <h2>边栏</h2>
  79. <p>这里是边栏的内容。这里是边栏的内容。这里是边栏的内容。这里是边栏的内容。这里是边栏的内容。这里是边栏的内容。</p>
  80. </div>
  81. </div>
  82. </body>
  83. </html>

结果如下:

边栏

这里是一些边栏的内容。这里是一些边栏的内容。这里是一些边栏的内容。

主要内容

这里是正文内容。这里是正文内容。这里是正文内容。这里是正文内容。这里是正文内容。这里是正文内容。这里是正文内容。这里是正文内容。这里是正文内容。

边栏

这里是一些边栏的内容。这里是一些边栏的内容。这里是一些边栏的内容。


页脚

页脚位于页面底部。它通常包含诸如版权和联系方式之类的信息:

  1. .footer {
  2. background-color: #F1F1F1;
  3. text-align: center;
  4. padding: 10px;
  5. }

结果:

页脚