HTML: HTML 布局

最后更新:2026-10-13

网页布局决定了页面的外观——包括页眉的位置、导航栏的排列方式以及内容区域和侧边栏的布局。良好的布局能使页面清晰易读,并能适应各种屏幕尺寸。

本节涉及标签: <div> <header> <nav> <main> <section> <aside> <footer>

1. 什么是HTML布局

HTML布局就是将网页划分为几个功能区域:头部(header)、导航栏(nav)、主要内容区(main)、侧边栏(aside)和底部(footer)。早期常用 <div> 搭配 CSS 完成布局:

▶ 示例

▶ 试一试

上面的例子用 <div> 配合 class 和 style 实现了一个经典的"上-中-下"布局,中间区域又分为主要内容区和侧边栏。这种方式的缺点是 HTML 标签本身无法表达区域的含义——所有区块都用 <div>,语义不清晰。


2. 语义化布局

HTML5 引入了语义化标签,用有含义的标签替代 <div>:

▶ 示例

▶ 试一试
💡 语义化布局 vs div 布局: 语义化标签对搜索引擎(SEO)和辅助技术(屏幕阅读器)更友好。搜索引擎会优先分析<main>里的内容,屏幕阅读器可以直接跳转到 <nav>。代码也更清晰——看标签名就知道每个区域的作用,不再需要从 class 名猜测。


3. Flexbox 简介

display: flex 是 CSS3 提供的弹性布局模型,能让子元素自动横向或纵向排列。你只需要在容器上设置 display: flex,子元素就会自动"排队"。下面用 Flexbox 做一个水平导航栏:

▶ 示例

▶ 试一试
💡 Flexbox 和 Grid 是现代 CSS 布局的核心。 Flexbox 擅长一维排列(横排或竖排),Grid 擅长二维布局(行列同时控制)。建议学完 HTML 后系统学习 CSS 教程,掌握这两大利器。 Flexbox 的常用属性包括 justify-content(水平对齐)、align-items(垂直对齐)和 gap(间距)。上面的导航栏只用了一行 display: flex 就让列表项从纵向变成横向排列,非常简洁。

本节涉及标签: <div> <header> <nav> <main> <section> <aside> <footer>

❓ 常见问题

Q <div>和语义化标签(<header>、<nav>等)有什么区别?
A <div>是通用容器,没有任何语义含义,只是用来包裹内容;语义化标签则明确表达了内容的用途——<header>是页眉,<nav>是导航,<main>是主体内容,<aside>是侧边栏,<footer>是页脚。好处:1)代码可读性更强;2)搜索引擎能更好地理解页面结构;3)屏幕阅读器用户可以快速跳转到特定区域。
Q 什么时候用Flexbox,什么时候用Grid?
A Flexbox是一维布局,适合在一条轴线上排列元素(横排或竖排),如导航栏、卡片列表、按钮组;Grid是二维布局,适合同时控制行和列,如页面整体布局、仪表盘、图片画廊。简单判断:如果只需要控制一行或一列,用Flexbox;如果需要同时控制多行多列,用Grid。两者可以结合使用。
Q 三栏布局(左-中-右)怎么实现?
A 最简单的方案是Flexbox:外层容器设display: flex,左右栏设固定宽度(如width: 200px),中间栏设flex: 1占满剩余空间。代码:<div style="display: flex"><div style="width: 200px">左</div><div style="flex: 1">中</div><div style="width: 200px">右</div></div>。响应式时可以用flex-wrap: wrap让三栏自动换行。
Q 为什么推荐用语义化标签替代<div>?
A 语义化标签的核心价值是"让代码自解释"。好处:1)开发者看到<nav>就知道这是导航,看到<aside>就知道这是侧边栏,不需要看class名猜测;2)搜索引擎给予语义化标签更高的权重,有助于SEO;3)屏幕阅读器用户可以通过语义标签快速导航(如"跳到main内容");4)未来维护时更容易理解页面结构。

📖 小节

📝 作业

  1. 个人主页布局:用语义化标签搭建一个个人主页,包含 header(网站标题)、nav(导航链接)、main(自我介绍+作品展示 section)、aside(联系信息)、footer(版权声明)。用 display: flex 让导航栏水平排列。
  2. 三栏布局:用 <div> 实现一个左-中-右的三栏布局,中间栏宽度自适应,左右两栏固定宽度 200px。(提示:用 Flexbox 的 flex 属性控制比例)
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏