网站响应式布局

通过上一章内容使用的一些CSS代码,我们创建了一个响应式网站布局,根据屏幕宽度的不同,该布局在两列和全宽列之间变化:

完整代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta name="viewport" content="width=device-width, initial-scale=1">
  5. <style>
  6. * {
  7. box-sizing: border-box;
  8. }
  9. body {
  10. font-family: Arial;
  11. padding: 10px;
  12. background: #f1f1f1;
  13. }
  14. /* 标题样式 */
  15. .header {
  16. padding: 30px;
  17. text-align: center;
  18. background: white;
  19. }
  20. .header h1 {
  21. font-size: 50px;
  22. }
  23. /* 导航条样式 */
  24. .topnav {
  25. overflow: hidden;
  26. background-color: #333;
  27. }
  28. /* 导航条链接样式 */
  29. .topnav a {
  30. float: left;
  31. display: block;
  32. color: #f2f2f2;
  33. text-align: center;
  34. padding: 14px 16px;
  35. text-decoration: none;
  36. }
  37. /* 改变鼠标悬停时的颜色 */
  38. .topnav a:hover {
  39. background-color: #ddd;
  40. color: black;
  41. }
  42. /* 创建两个不等列 */
  43. /* 左列 */
  44. .leftcolumn {
  45. float: left;
  46. width: 75%;
  47. }
  48. /* 右列 */
  49. .rightcolumn {
  50. float: left;
  51. width: 25%;
  52. background-color: #f1f1f1;
  53. padding-left: 20px;
  54. }
  55. /* 伪图片 */
  56. .fakeimg {
  57. background-color: #aaa;
  58. width: 100%;
  59. padding: 20px;
  60. }
  61. /* 为文章增加卡片式的阴影效果 */
  62. .card {
  63. background-color: white;
  64. padding: 20px;
  65. margin-top: 20px;
  66. }
  67. /* 在列后面清除浮动效果 */
  68. .row:after {
  69. content: "";
  70. display: table;
  71. clear: both;
  72. }
  73. /* 页脚 */
  74. .footer {
  75. padding: 20px;
  76. text-align: center;
  77. background: #ddd;
  78. margin-top: 20px;
  79. }
  80. /* 响应式布局-当屏幕宽度小于800px时,使两列堆叠在一起,而不是相邻 */
  81. @media screen and (max-width: 800px) {
  82. .leftcolumn, .rightcolumn {
  83. width: 100%;
  84. padding: 0;
  85. }
  86. }
  87. /* 响应式布局-当屏幕宽度小于400px时,使导航链接堆叠在彼此的顶部,而不是相邻 */
  88. @media screen and (max-width: 400px) {
  89. .topnav a {
  90. float: none;
  91. width: 100%;
  92. }
  93. }
  94. </style>
  95. </head>
  96. <body>
  97. <div class="header">
  98. <h1>我的网站</h1>
  99. <p>调整浏览器窗口的大小以查看效果。</p>
  100. </div>
  101. <div class="topnav">
  102. <a href="#">链接</a>
  103. <a href="#">链接</a>
  104. <a href="#">链接</a>
  105. <a href="#" style="float:right">链接</a>
  106. </div>
  107. <div class="row">
  108. <div class="leftcolumn">
  109. <div class="card">
  110. <h2>标题</h2>
  111. <h5>标题描述</h5>
  112. <div class="fakeimg" style="height:200px;">图片</div>
  113. <p>一些文本</p>
  114. <p>这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。</p>
  115. </div>
  116. <div class="card">
  117. <h2>标题</h2>
  118. <h5>标题描述</h5>
  119. <div class="fakeimg" style="height:200px;">图片</div>
  120. <p>一些文本</p>
  121. <p>这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。这里是文章的内容。</p>
  122. </div>
  123. </div>
  124. <div class="rightcolumn">
  125. <div class="card">
  126. <h2>关于我</h2>
  127. <div class="fakeimg" style="height:100px;">Image</div>
  128. <p>我是一名热爱编程的......</p>
  129. </div>
  130. <div class="card">
  131. <h3>热门文章</h3>
  132. <div class="fakeimg"><p>图片</p></div>
  133. <div class="fakeimg"><p>图片</p></div>
  134. <div class="fakeimg"><p>图片</p></div>
  135. </div>
  136. <div class="card">
  137. <h3>关注我</h3>
  138. <p>Some text..</p>
  139. </div>
  140. </div>
  141. </div>
  142. <div class="footer">
  143. <h2>页脚</h2>
  144. </div>
  145. </body>
  146. </html>