html是定义页面内容结构和语义的骨架语言,非排版或样式工具;其标签本质是语义化声明,如表示主标题而非最大字号,声明导航区块以提升可访问性与seo,废弃标签如应由css替代,最小合法结构须含及lang、charset等基础声明。

HTML 不是排版语言,也不是样式控制工具;它是定义页面内容结构和语义的骨架语言。 所有“居中”“加粗”“两栏布局”这类视觉效果,都不该由 <center></center>、<b></b> 或嵌套 <table> 实现——那是 CSS 的职责。
<h3>HTML 标签的本质是语义化声明</h3>
<p>浏览器不关心你“想怎么显示”,只响应你“声明了什么”。比如:</p>
<ul><li>
<code><h1></h1> 表示主标题(最高层级内容),不是“最大号字”;换用 <div style="font-size:2em"> 就丢失了语义
<li>
<code><nav></nav> 声明导航区块,对屏幕阅读器、SEO、代码可维护性都有实际影响,而不仅仅是给 CSS 选中用的 class
<article></article> 和 <section></section> 有明确嵌套规则:一个 <article></article> 可以包含多个 <section></section>,但反过来不成立新手最常误用的三个“伪排版标签”
这些标签在 HTML5 中已被废弃或严格限制用途,但仍在大量旧代码/教程中出现:
-
<font></font>:完全移除语义,纯样式控制,现代 HTML 中禁止使用;应改用 CSS 的color、font-family等属性 -
<center></center>:无任何语义价值,且已被 HTML5 废弃;居中需求统一走text-align(文本)或margin: 0 auto(块级元素) -
<u></u>:原意是“非标准文本”(如拼写错误、专有名词下划线),不是“加下划线样式”;强调用<em></em>,重要信息用<strong></strong>,装饰性下划线必须用 CSS
HTML 骨架必须包含的最小合法结构
哪怕只写一行字,也得满足基本文档结构,否则可能触发浏览器怪异模式(Quirks Mode),导致盒模型、字体渲染等行为不可控:
<meta charset="UTF-8"><title>页面标题</title><p>这是正文段落</p>
必须顶格首行,缺它就进怪异模式-
的lang属性影响语音合成、翻译插件和部分 CSS 伪类(如:lang()) -
<meta charset="UTF-8">必须在最前面,晚于它写的 JS/CSS 可能乱码
真正难的不是记住标签名,而是每次写 <div> 前都问一句:这里有没有更准确的语义标签?比如列表用 <code><ul></ul>、时间用 <time></time>、联系人用 <address></address>——这些细节在协作开发、无障碍访问和长期维护中会持续放大影响。











