完整HTML模板设计.css 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632
  1. /* 全局样式重置 */
  2. /* 目的:消除不同浏览器对HTML元素的默认样式(如margin, padding)差异,确保页面在各种浏览器下有一致的基础外观 */
  3. /* 作用于所有元素 (*) */
  4. * {
  5. margin: 0;
  6. /* 移除所有元素的外边距 */
  7. padding: 0;
  8. /* 移除所有元素的内边距 */
  9. box-sizing: border-box;
  10. /* 改变盒模型:元素的width和height包含border和padding,便于布局计算 */
  11. }
  12. /* CSS 变量定义 (Custom Properties) */
  13. /* 目的:创建可重用的值,方便进行主题切换(如亮色/暗色模式)和统一管理颜色、阴影、圆角等设计属性 */
  14. /* :root 伪类选择器代表文档的根元素(通常是 <html>),在这里定义的变量可在整个文档中使用 */
  15. :root {
  16. --primary: #4361ee;
  17. /* 主色调,通常用于主要按钮、链接、高亮区域 */
  18. --secondary: #3f37c9;
  19. /* 次要色调,用于次要按钮或作为主色调的补充 */
  20. --accent: #4cc9f0;
  21. /* 强调色,用于需要突出显示的元素 */
  22. --light: #f8f9fa;
  23. /* 浅色,常用于背景或浅色文本 */
  24. --dark: #212529;
  25. /* 深色,常用于深色文本或深色背景 */
  26. --success: #4CAF50;
  27. /* 成功/正确状态的颜色 */
  28. --warning: #ff9800;
  29. /* 警告/注意状态的颜色 */
  30. --danger: #f44336;
  31. /* 危险/错误状态的颜色 */
  32. --shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  33. /* 预定义的阴影效果,增加元素层次感 */
  34. --border-radius: 8px;
  35. /* 预定义的边框圆角大小,用于创建圆角卡片、按钮等 */
  36. --transition: all 0.3s ease;
  37. /* 预定义的过渡动画,使属性变化更平滑 */
  38. --text-light: #f8f9fa;
  39. /* 浅色文本颜色 */
  40. --text-dark: #212529;
  41. /* 深色文本颜色 */
  42. --bg: #f5f7fa;
  43. /* 页面默认背景色 */
  44. --card-bg: #ffffff;
  45. /* 卡片(Card)组件的背景色 */
  46. --header-bg: #4361ee;
  47. /* 页头(Header)的背景色 */
  48. --sidebar-bg: #f0f2f5;
  49. /* 侧边栏(Sidebar)的背景色 */
  50. }
  51. /* 暗色主题变量覆盖 */
  52. /* 目的:当 body 或根元素被添加 'dark-theme' 类时,覆盖 :root 中定义的某些变量值,实现暗色主题 */
  53. /* 通常通过JavaScript动态切换此class来实现主题切换 */
  54. .dark-theme {
  55. --bg: #1a1a2e;
  56. /* 暗色背景 */
  57. --card-bg: #16213e;
  58. /* 暗色卡片背景 */
  59. --text-dark: #f0f0f0;
  60. /* 暗色主题下使用浅色文本 */
  61. --header-bg: #0f3460;
  62. /* 暗色页头背景 */
  63. --sidebar-bg: #1a1a2e;
  64. /* 暗色侧边栏背景 */
  65. }
  66. /* 页面基础布局样式 */
  67. /* 目的:使用 CSS Grid 布局模型构建整个页面的响应式结构 */
  68. /* 采用网格布局,定义了明确的区域划分 */
  69. body {
  70. font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  71. /* 定义字体栈 */
  72. line-height: 1.6;
  73. /* 定义行高,改善文本可读性 */
  74. color: var(--text-dark);
  75. /* 设置默认文本颜色,使用CSS变量 */
  76. background-color: var(--bg);
  77. /* 设置页面背景色,使用CSS变量 */
  78. min-height: 100vh;
  79. /* 最小高度为视口高度的100%,确保内容少时也能撑满屏幕 */
  80. display: grid;
  81. /* 启用 CSS Grid 布局 */
  82. /* 定义网格的列:第一列固定280px(通常用于侧边栏),第二列占据剩余所有空间(1fr) */
  83. grid-template-columns: 280px 1fr;
  84. /* 定义网格的行:第一行固定70px(页头),第二行占据剩余空间(1fr)(主要内容区),第三行固定50px(页脚) */
  85. grid-template-rows: 70px 1fr 50px;
  86. /* 定义网格区域的名称和布局:
  87. "header header" -> 页头跨越两列
  88. "sidebar main" -> 第一列是侧边栏,第二列是主内容区
  89. "footer footer" -> 页脚跨越两列
  90. 这些名称(header, sidebar, main, footer)将被 grid-area 属性引用 */
  91. grid-template-areas:
  92. "header header"
  93. "sidebar main"
  94. "footer footer";
  95. /* 为 body 元素本身应用过渡效果,当切换主题(如添加/移除 dark-theme class)时,颜色等属性会平滑变化 */
  96. transition: var(--transition);
  97. }
  98. /* 页头 (Header) 样式 */
  99. /* 使用 grid-area: header; 将此元素放置在由 grid-template-areas 定义的 'header' 区域 */
  100. header {
  101. grid-area: header;
  102. /* 将此元素放置在名为 'header' 的网格区域内 */
  103. background: var(--header-bg);
  104. /* 背景色使用CSS变量 */
  105. color: var(--text-light);
  106. /* 文本颜色使用CSS变量 */
  107. padding: 0 2rem;
  108. /* 左右内边距为2rem,上下为0 */
  109. display: flex;
  110. /* 使用 Flexbox 布局来排列页头内部元素 */
  111. justify-content: space-between;
  112. /* 子元素在主轴(水平)上分散对齐,第一个靠左,最后一个靠右 */
  113. align-items: center;
  114. /* 子元素在交叉轴(垂直)上居中对齐 */
  115. box-shadow: var(--shadow);
  116. /* 添加预定义的阴影效果 */
  117. z-index: 100;
  118. /* 设置较高的堆叠顺序,确保页头在其他内容之上(尤其在滚动时) */
  119. }
  120. /* logo 样式 */
  121. /* 专门针对页头内的logo元素(通常是一个类名为logo的元素) */
  122. .logo {
  123. font-size: 1.8rem;
  124. /* 设置logo文字大小 */
  125. font-weight: bold;
  126. /* 设置logo文字加粗 */
  127. display: flex;
  128. /* 使用 Flexbox 布局,方便图标和文字并排 */
  129. align-items: center;
  130. /* 内部元素(如图标和文字)垂直居中 */
  131. gap: 10px;
  132. /* 定义logo内部子元素之间的间距为10px */
  133. /* 例如,如果logo包含一个图标和一个文字,这个gap会让它们之间有10px的空隙 */
  134. }
  135. /* 主题切换按钮样式 */
  136. /* 定义一个用于切换亮色/暗色主题的按钮的外观 */
  137. .theme-toggle {
  138. background: var(--accent);
  139. /* 背景色使用CSS变量 --accent (强调色) */
  140. color: var(--text-dark);
  141. /* 文本颜色使用CSS变量 --text-dark (深色文本) */
  142. border: none;
  143. /* 移除默认边框 */
  144. padding: 8px 15px;
  145. /* 设置上下8px,左右15px的内边距 */
  146. border-radius: 20px;
  147. /* 设置20px的圆角,使按钮呈胶囊或圆形 */
  148. cursor: pointer;
  149. /* 鼠标悬停时显示为手型光标,表示可点击 */
  150. font-weight: 500;
  151. /* 字体粗细设置为中等偏粗 */
  152. display: flex;
  153. /* 使用Flexbox布局,便于内部元素(如图标和文字)对齐 */
  154. align-items: center;
  155. /* 内部元素在交叉轴(垂直方向)上居中对齐 */
  156. gap: 8px;
  157. /* 内部子元素之间保持8px的间距 */
  158. transition: var(--transition);
  159. /* 应用预设的过渡效果,使背景色等属性变化更平滑 */
  160. }
  161. /* 主题切换按钮悬停状态 */
  162. /* 当鼠标悬停在按钮上时的样式 */
  163. .theme-toggle:hover {
  164. background: #3fb8da;
  165. /* 背景色变为一个特定的蓝色(比--accent稍深),提供视觉反馈 */
  166. /* 注意:这里没有使用变量,而是固定值,可能为了提供更具体的悬停效果 */
  167. }
  168. /* 侧边栏样式 */
  169. /* 定义页面左侧边栏(通常用于导航)的整体样式 */
  170. aside {
  171. grid-area: sidebar;
  172. /* 将此元素放置在CSS Grid布局中名为'sidebar'的区域 */
  173. background: var(--sidebar-bg);
  174. /* 背景色使用CSS变量 --sidebar-bg */
  175. padding: 20px;
  176. /* 设置20px的内边距 */
  177. overflow-y: auto;
  178. /* 当内容超出容器高度时,允许垂直滚动(出现滚动条) */
  179. border-right: 1px solid rgba(0, 0, 0, 0.1);
  180. /* 右侧添加1px宽的浅色(透明度10%)实线边框,作为与主内容区的分隔 */
  181. }
  182. /* 侧边栏内的一个分组区域 */
  183. /* 用于将侧边栏内容分组,例如“导航”、“工具”等 */
  184. .sidebar-section {
  185. margin-bottom: 25px;
  186. /* 每个分组下方留出25px的外边距,增加分组间的空间 */
  187. }
  188. /* 侧边栏分组标题样式 */
  189. .sidebar-section h3 {
  190. color: var(--primary);
  191. /* 标题文字颜色使用主色调 --primary */
  192. margin-bottom: 15px;
  193. /* 标题下方留出15px外边距 */
  194. padding-bottom: 8px;
  195. /* 标题下方填充8px */
  196. border-bottom: 2px solid var(--accent);
  197. /* 在标题下方添加2px宽的强调色实线,增强视觉层次 */
  198. }
  199. /* 侧边栏链接列表样式 */
  200. /* 定义导航链接列表的通用样式 */
  201. .sidebar-links {
  202. list-style: none;
  203. /* 移除列表项前的默认符号(如圆点) */
  204. }
  205. /* 侧边栏列表项样式 */
  206. .sidebar-links li {
  207. margin-bottom: 8px;
  208. /* 每个列表项下方留出8px外边距 */
  209. }
  210. /* 侧边栏链接样式 */
  211. .sidebar-links a {
  212. text-decoration: none;
  213. /* 移除链接的下划线 */
  214. color: var(--text-dark);
  215. /* 链接文字颜色使用深色文本 --text-dark */
  216. display: block;
  217. /* 使链接显示为块级元素,占据整行宽度,增加可点击区域 */
  218. padding: 8px 12px;
  219. /* 设置上下8px,左右12px的内边距 */
  220. border-radius: var(--border-radius);
  221. /* 应用预设的圆角 --border-radius */
  222. transition: var(--transition);
  223. /* 应用过渡效果,使悬停时的变化更平滑 */
  224. }
  225. /* 侧边栏链接悬停状态 */
  226. .sidebar-links a:hover {
  227. background: var(--primary);
  228. /* 悬停时,背景色变为主色调 --primary */
  229. color: white;
  230. /* 悬停时,文字颜色变为白色,提高对比度 */
  231. }
  232. /* 侧边栏链接中的图标样式 */
  233. /* 假设链接中包含使用图标字体(如Font Awesome)的 <i> 标签 */
  234. .sidebar-links a i {
  235. width: 25px;
  236. /* 为图标设置固定的25px宽度 */
  237. text-align: center;
  238. /* 确保图标在设定的宽度内水平居中 */
  239. /* 这使得所有图标对齐整齐,改善视觉效果 */
  240. }
  241. /* 主内容区样式 */
  242. /* 定义页面中央主要区域的样式 */
  243. main {
  244. grid-area: main;
  245. /* 将此元素放置在CSS Grid布局中名为'main'的区域 */
  246. padding: 2rem;
  247. /* 设置2rem的内边距 */
  248. overflow-y: auto;
  249. /* 当内容超出容器高度时,允许垂直滚动(出现滚动条) */
  250. }
  251. /* 内容卡片样式 */
  252. /* 定义页面中用于包裹独立内容块(如表单、信息展示区)的卡片容器样式 */
  253. .section-card {
  254. background: var(--card-bg);
  255. /* 背景色使用卡片背景色 --card-bg */
  256. border-radius: var(--border-radius);
  257. /* 应用预设的圆角 --border-radius */
  258. box-shadow: var(--shadow);
  259. /* 添加预设的阴影效果 --shadow,增加立体感和层次 */
  260. padding: 1.8rem;
  261. /* 设置1.8rem的内边距 */
  262. margin-bottom: 2rem;
  263. /* 卡片下方留出2rem的外边距,使卡片之间有足够间隔 */
  264. transition: var(--transition);
  265. /* 应用过渡效果,例如在主题切换时颜色变化更平滑 */
  266. }
  267. /* 卡片内一级标题样式 */
  268. .section-card h2 {
  269. color: var(--primary);
  270. /* 标题文字颜色使用主色调 --primary */
  271. margin-bottom: 1.5rem;
  272. /* 标题下方留出1.5rem外边距 */
  273. padding-bottom: 0.8rem;
  274. /* 标题下方填充0.8rem */
  275. border-bottom: 2px solid var(--accent);
  276. /* 在标题下方添加2px宽的强调色实线 */
  277. display: flex;
  278. /* 使用Flexbox布局 */
  279. align-items: center;
  280. /* 内部元素(如图标和文字)在交叉轴(垂直方向)上居中对齐 */
  281. gap: 10px;
  282. /* 内部子元素(如图标和文字)之间保持10px的间距 */
  283. }
  284. /* 卡片内二级标题样式 */
  285. .section-card h3 {
  286. color: var(--secondary);
  287. /* 标题文字颜色使用次要色调 --secondary */
  288. margin: 1.2rem 0 0.8rem;
  289. /* 设置上外边距1.2rem,左右外边距0,下外边距0.8rem */
  290. }
  291. /* 表格样式 */
  292. /* 定义表格的整体外观和布局 */
  293. table {
  294. width: 100%;
  295. /* 表格宽度占满其父容器 */
  296. border-collapse: collapse;
  297. /* 合并表格边框,使相邻单元格的边框合并为一条线 */
  298. margin: 1.2rem 0;
  299. /* 上下外边距为1.2rem,左右为0 */
  300. background: var(--card-bg);
  301. /* 背景色使用卡片背景色变量 */
  302. box-shadow: var(--shadow);
  303. /* 添加预设的阴影效果,增加立体感 */
  304. border-radius: var(--border-radius);
  305. /* 设置圆角,使表格边缘更柔和 */
  306. overflow: hidden;
  307. /* 隐藏溢出的内容,确保圆角和阴影效果在边框内显示 */
  308. }
  309. /* 表格表头和表格数据单元格的通用样式 */
  310. table th,
  311. table td {
  312. padding: 0.9rem;
  313. /* 单元格内边距为0.9rem */
  314. text-align: left;
  315. /* 文本左对齐 */
  316. border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  317. /* 每个单元格下方添加一条浅色(透明度10%)细线分隔 */
  318. }
  319. /* 表格表头样式 */
  320. table th {
  321. background-color: var(--primary);
  322. /* 表头背景色使用主色调 */
  323. color: white;
  324. /* 表头文字颜色为白色,提高对比度 */
  325. }
  326. /* 表格行悬停状态样式 */
  327. table tr:hover {
  328. background-color: rgba(0, 0, 0, 0.03);
  329. /* 当鼠标悬停在行上时,背景色变为非常浅的灰色(透明度3%) */
  330. }
  331. /* 表单样式 */
  332. /* 表单控件分组容器,用于管理标签和输入框的间距 */
  333. .form-group {
  334. margin-bottom: 1.2rem;
  335. /* 每个表单组下方留出1.2rem的外边距 */
  336. }
  337. /* 表单标签样式 */
  338. label {
  339. display: block;
  340. /* 显示为块级元素,独占一行 */
  341. margin-bottom: 0.5rem;
  342. /* 标签下方留出0.5rem的外边距 */
  343. font-weight: 500;
  344. /* 字体加粗 */
  345. }
  346. /* 输入框、选择框、文本域的通用样式 */
  347. input,
  348. select,
  349. textarea {
  350. width: 100%;
  351. /* 宽度占满其父容器 */
  352. padding: 0.8rem;
  353. /* 内边距为0.8rem */
  354. border: 1px solid #ddd;
  355. /* 1px宽的浅灰色边框 */
  356. border-radius: var(--border-radius);
  357. /* 应用预设的圆角 */
  358. font-size: 1rem;
  359. /* 字体大小 */
  360. background: var(--card-bg);
  361. /* 背景色使用卡片背景色 */
  362. color: var(--text-dark);
  363. /* 文字颜色使用深色文本变量 */
  364. transition: var(--transition);
  365. /* 应用过渡效果,使获得焦点时的变化更平滑 */
  366. }
  367. /* 输入框、选择框、文本域获得焦点时的样式 */
  368. input:focus,
  369. select:focus,
  370. textarea:focus {
  371. border-color: var(--accent);
  372. /* 边框颜色变为强调色 */
  373. outline: none;
  374. /* 移除浏览器默认的轮廓线 */
  375. box-shadow: 0 0 0 3px rgba(76, 201, 240, 0.3);
  376. /* 在边框外添加一层半透明的蓝色(--accent色)光晕(3px宽) */
  377. }
  378. /* 按钮通用样式 */
  379. button,
  380. .btn {
  381. background: var(--primary);
  382. /* 背景色使用主色调 */
  383. color: white;
  384. /* 文字颜色为白色 */
  385. border: none;
  386. /* 移除默认边框 */
  387. padding: 0.8rem 1.5rem;
  388. /* 上下内边距0.8rem,左右1.5rem */
  389. border-radius: var(--border-radius);
  390. /* 应用预设的圆角 */
  391. cursor: pointer;
  392. /* 鼠标悬停时显示为手型光标 */
  393. font-size: 1rem;
  394. /* 字体大小 */
  395. font-weight: 500;
  396. /* 字体加粗 */
  397. transition: var(--transition);
  398. /* 应用过渡效果 */
  399. display: inline-flex;
  400. /* 显示为行内Flexbox容器,便于图标和文字对齐 */
  401. align-items: center;
  402. /* 内部元素(如图标)垂直居中对齐 */
  403. gap: 8px;
  404. /* 内部子元素(如图标和文字)之间保持8px间距 */
  405. }
  406. /* 按钮悬停状态样式 */
  407. button:hover,
  408. .btn:hover {
  409. background: var(--secondary);
  410. /* 悬停时背景色变为次要色调 */
  411. transform: translateY(-2px);
  412. /* 向上轻微移动2px,模拟“按下”效果,增强交互感 */
  413. }
  414. /* 特定功能按钮样式 */
  415. .btn-success {
  416. /* 成功/确认按钮 */
  417. background: var(--success);
  418. }
  419. .btn-warning {
  420. /* 警告/注意按钮 */
  421. background: var(--warning);
  422. }
  423. .btn-danger {
  424. /* 危险/删除按钮 */
  425. background: var(--danger);
  426. }
  427. /* 列表样式 */
  428. /* 无序列表和有序列表的通用样式 */
  429. ul,
  430. ol {
  431. margin-left: 1.8rem;
  432. /* 左侧外边距1.8rem,形成缩进 */
  433. margin-bottom: 1.2rem;
  434. /* 下方外边距1.2rem */
  435. }
  436. /* 列表项样式 */
  437. li {
  438. margin-bottom: 0.5rem;
  439. /* 每个列表项下方留出0.5rem外边距 */
  440. }
  441. /* 页脚样式 */
  442. footer {
  443. grid-area: footer;
  444. /* 将此元素放置在CSS Grid布局中名为'footer'的区域 */
  445. background: var(--dark);
  446. /* 背景色使用深色变量 */
  447. color: var(--text-light);
  448. /* 文字颜色使用浅色文本变量 */
  449. text-align: center;
  450. /* 文本居中对齐 */
  451. padding: 1rem;
  452. /* 内边距1rem */
  453. display: flex;
  454. /* 使用Flexbox布局 */
  455. justify-content: center;
  456. /* 内容在主轴(水平)上居中对齐 */
  457. align-items: center;
  458. /* 内容在交叉轴(垂直)上居中对齐 */
  459. }
  460. /* 实用工具类 (Utility Classes) */
  461. /* 提供快速布局和样式的辅助类 */
  462. .flex {
  463. display: flex;
  464. /* 快速应用Flexbox布局 */
  465. gap: 1rem;
  466. /* 子元素间默认间距1rem */
  467. flex-wrap: wrap;
  468. /* 允许子元素换行 */
  469. }
  470. .grid {
  471. display: grid;
  472. /* 快速应用Grid布局 */
  473. /* 创建一个响应式网格:自动填充列,每列最小250px,最大1fr(均分剩余空间) */
  474. grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  475. gap: 1.5rem;
  476. /* 网格项之间的间距1.5rem */
  477. }
  478. .text-center {
  479. text-align: center;
  480. /* 文本居中对齐 */
  481. }
  482. .mt-2 {
  483. margin-top: 2rem;
  484. /* 上外边距2rem */
  485. }
  486. .mb-2 {
  487. margin-bottom: 2rem;
  488. /* 下外边距2rem */
  489. }
  490. .p-3 {
  491. padding: 1.5rem;
  492. /* 内边距1.5rem */
  493. }
  494. /* 示例框样式 - 用于突出显示示例内容 */
  495. .example-box {
  496. background: rgba(67, 97, 238, 0.1);
  497. /* 非常浅的蓝色背景(透明度10%) */
  498. border-left: 4px solid var(--primary);
  499. /* 左侧添加4px宽的主色调实线,作为视觉引导 */
  500. padding: 1.2rem;
  501. /* 内边距1.2rem */
  502. margin: 1.2rem 0;
  503. /* 上下外边距1.2rem */
  504. /* 设置圆角:左上角0度,其他三个角使用预设圆角,形成特殊视觉效果 */
  505. border-radius: 0 var(--border-radius) var(--border-radius) 0;
  506. }
  507. /* 代码块样式 - 用于展示代码片段 */
  508. .code-block {
  509. background: #2d2d2d;
  510. /* 深灰色背景,模拟代码编辑器 */
  511. color: #f8f8f2;
  512. /* 浅色文字,提高可读性 */
  513. padding: 1.2rem;
  514. /* 内边距1.2rem */
  515. border-radius: var(--border-radius);
  516. /* 应用圆角 */
  517. margin: 1.2rem 0;
  518. /* 上下外边距1.2rem */
  519. overflow: auto;
  520. /* 内容溢出时允许滚动(特别是水平滚动) */
  521. font-family: 'Courier New', monospace;
  522. /* 使用等宽字体,适合代码显示 */
  523. }
  524. /* 标签示例样式 - 可能用于展示HTML标签或分类标签 */
  525. .tag-example {
  526. background: var(--light);
  527. /* 背景色使用浅色变量 */
  528. padding: 15px;
  529. /* 内边距15px */
  530. border-radius: var(--border-radius);
  531. /* 应用圆角 */
  532. margin: 15px 0;
  533. /* 上下外边距15px */
  534. }
  535. /* 响应式设计:小屏幕下布局调整 */
  536. /* 使用媒体查询,当屏幕宽度小于或等于 900px 时应用以下规则 */
  537. @media (max-width: 900px) {
  538. /* 调整整体页面布局 */
  539. body {
  540. /* 将网格布局的列数从多列(可能包含侧边栏)改为单列 */
  541. grid-template-columns: 1fr;
  542. /* 重新定义网格区域的排列顺序,使内容垂直堆叠 */
  543. grid-template-areas:
  544. "header"
  545. /* 顶部导航栏 */
  546. "main"
  547. /* 主内容区域(现在占据整个宽度) */
  548. "footer";
  549. /* 页脚 */
  550. /* 注意:'sidebar' 区域在此布局中被移除 */
  551. }
  552. /* 隐藏侧边栏 */
  553. aside {
  554. display: none;
  555. /* 将侧边栏完全隐藏,不占用任何空间 */
  556. }
  557. /* 显示移动端菜单按钮 */
  558. .mobile-menu-btn {
  559. display: block;
  560. /* 将原本可能隐藏的移动端菜单按钮显示出来 */
  561. /* 这个按钮通常用于在小屏幕上点击以展开/收起侧边栏(如果实现的话) */
  562. }
  563. }
  564. /* 进一步适配更小的屏幕(如手机竖屏) */
  565. /* 当屏幕宽度小于或等于 600px 时应用以下规则 */
  566. @media (max-width: 600px) {
  567. /* 调整 Flex 布局容器的方向 */
  568. .flex {
  569. flex-direction: column;
  570. /* 将 Flex 容器的主轴方向改为垂直(从上到下) */
  571. /* 这使得原本水平排列的子元素在小屏幕上垂直堆叠,避免内容过窄或换行混乱 */
  572. }
  573. /* 调整 Grid 布局容器的列数 */
  574. .grid {
  575. /* 将网格布局强制变为单列 */
  576. grid-template-columns: 1fr;
  577. /* 无论之前定义的 minmax 如何,现在每行只显示一个网格项 */
  578. /* 这确保了在非常窄的屏幕上,网格项能完整显示且易于点击 */
  579. }
  580. }