HTML 元素¶
元素是 HTML 文档的结构单位。选择元素时应先考虑内容含义和允许的嵌套关系, 而不是只考虑浏览器默认显示成什么样。
学习目标¶
- 区分元素、开始标签、结束标签和内容。
- 正确嵌套普通元素并识别空元素。
- 理解 DOM、内容模型和默认样式不是同一概念。
核心概念¶
下面的整体是一个 p 元素,其中包含一个 strong 子元素:
嵌套时应后打开、先关闭:
空元素不能包含子内容,也没有结束标签。常见空元素包括 img、meta、link、input、
br 和 hr:
在 HTML 文档中不需要写 XML 风格的 />。团队可以统一格式,但斜杠不会让空元素获得结束标签。
内容模型¶
并非任意元素都能放入另一个元素。例如 ul 的直接子元素应是 li,p 不能包含 div。
浏览器遇到无效结构时可能隐式关闭元素,使最终 DOM 与源码缩进不同。
CSS 可以把 span 设置成块状显示,也可以把 div 设置成行内显示,但这不会改变它们的 HTML 语义,
也不会改变规范允许的子内容。
语义元素与通用容器¶
当内容确实是导航、文章或按钮时,优先使用 nav、article 或 button。只有在没有更合适语义、
主要为了分组或样式时,才使用 div 和 span。
常见错误¶
- 交叉闭合标签,依赖浏览器猜测作者意图。
- 为每一层布局都添加无意义的
div。 - 给空元素编写结束标签或尝试在其中放文字。
- 认为改变
display属性也改变了可访问角色。 - 在
p内嵌套章节、列表或另一个段落。