语义化标签(header/main/footer)、重置盒模型、flex布局、max-width居中是构建可用页面的四步基础:header放logo导航,main唯一且不嵌套,footer按需使用;重置margin/padding并设box-sizing;用flex对齐替代float;先控宽再响应式。

用 <header></header>、<main></main>、<footer></footer> 搭出基础结构
浏览器能识别语义化标签,不靠 CSS 也能看出页面骨架。初学者常直接堆 <div>,结果改起来费劲、屏幕阅读器也读不准。用原生语义标签是最低成本的结构保障。<ul>
<li>
<code><header></header> 放 logo、导航栏;一个页面通常只用一次
<main></main> 只能出现一次,且不能嵌套在 <article></article> 或 <aside></aside> 里——这是 W3C 明确规定的<footer></footer> 不一定在页面最底:它属于其最近的 <section></section> 或整个页面,按需使用给块加边框和间距前先重置 margin 和 padding
直接写 margin: 20px; 很容易被浏览器默认样式干扰,比如 <h1></h1> 自带上下边距,<p></p> 也有,叠在一起就失控。
- 开头加一段
* { margin: 0; padding: 0; box-sizing: border-box; }——box-sizing: border-box让 width/height 包含 padding 和 border,计算更直观 - 别用
float布局:初学容易卡在“父容器塌陷”上,现在用display: flex或display: grid更稳 - 想让
<header></header>固定在顶部?加position: sticky; top: 0;就行,不用 JS
用 flex 快速对齐导航栏和内容区
导航栏左对齐 logo、右对齐菜单项,或者三栏等宽卡片,flex 几行代码就能搞定,比传统浮动或绝对定位容错率高得多。
.nav {
display: flex;
justify-content: space-between;
align-items: center;
}
<p>.nav ul {
display: flex;
list-style: none;
gap: 1rem;
}</p>
-
justify-content控制主轴(默认水平)对齐方式:flex-start、center、space-between最常用 -
gap替代margin控制子元素间距,不会影响首尾元素的外边距 - 如果内容区要两栏布局(左侧文章+右侧侧边栏),给
<main></main>加display: flex;,再设子元素flex: 3和flex: 1即可
别急着写响应式,先用 max-width 和 margin: auto 防止宽屏撑裂
很多初学者一上来就写 @media,结果桌面端还没调好,移动端反而更乱。先保证在常见宽度下内容可读、不拉伸,是更实际的起点。
- 给
<main></main>或包裹容器加max-width: 960px;+margin: 0 auto;,内容居中且不随窗口无限变宽 - 字体用
rem而非px:根元素设font-size: 16px;,标题用1.5rem,后续缩放更可控 - 图片加
max-width: 100%; height: auto;——这条必须写,否则大图会溢出容器
语义标签搭骨架、重置盒模型、用 flex 对齐、控制最大宽度——这四步做完,页面已经具备基本可用性和可维护性。细节样式可以慢慢调,但结构松散或盒模型混乱,后面越改越累。











