新手写html最易出错的是结构逻辑混乱,如head/body混用、嵌套不闭合、语义乱用;须显式闭合标签、正确使用语义元素、属性值加双引号、id规范命名,并对比源码与渲染dom树。

新手写 HTML 语句,最常出问题的不是标签拼错,而是结构逻辑混乱——里塞内容、外写文本、嵌套不闭合、语义乱用,这些都会让浏览器“猜意图”,结果不可控。
标签必须成对闭合,但部分标签可省略闭合符?
html5 允许省略某些结束标签(如
、
),但这是浏览器“自动补全”的行为,不是推荐写法。新手按省略写,容易误判嵌套层级。 -
—— 错! 被提前截断,后续样式/js 可能失效 - 正确写法始终显式闭合:
文字
-
![html语句的应用_新手写html语句结构常见误区【教程】 html语句的应用_新手写html语句结构常见误区【教程】]()
、、
是自闭合标签,写 ![html语句的应用_新手写html语句结构常见误区【教程】]()
或 ![html语句的应用_新手写html语句结构常见误区【教程】]()
都合法,但别写 ![html语句的应用_新手写html语句结构常见误区【教程】]()
head 和 body 的职责不能混用
只放元信息:字符集、标题、css/JS 引入、seo 相关 ;所有可见内容、交互元素必须在 内。常见错误是把
或 直接写在 下(没包在 里)。
立即学习“前端免费学习笔记(深入)”;
- 浏览器会把
外或 外的文本节点,自动挪进 —— 但位置不确定,调试时 DOM 树会“跳变” -
必须在 内,写到 里无效(页面标题不会变) -
放 时,若依赖 DOM 元素,需加 defer 或监听 DOMContentLoaded
div 嵌套过深、滥用 block 元素替代语义标签
新手习惯全用
+ class 控制样式,导致结构扁平无层次,可访问性差,也增加 CSS 选择器复杂度。 - 标题就该用
~,别用 - 导航用
,页脚用 ,列表用
/
,表格数据用 —— 这些不是“可选装饰”,是浏览器和读屏软件识别内容的关键 - 嵌套超过 4 层
时,先问:能否用语义标签降层?是否 CSS Grid/flex 可替代部分包裹? 属性值不加引号、大小写混用、自定义属性没加 data-
HTML 属性值含空格、特殊字符或纯数字时,不加引号会解析失败;虽然 class=header 在简单场景能运行,但 class=my class 就直接崩了。
- 永远用双引号包裹属性值:
class="tuc-19bc10f7-54311a-0 header tuc-19bc10f7-54311a-0",而非 class=header 或 class='header'(单引号虽合法,但易与 JS 字符串冲突) - 属性名统一小写:
onclick,不要 onClick;data-id 可以,myid 不是标准属性,必须写成 data-myid -
id 值不能以数字开头(id="1section" 无效),也不能含空格或点号(id="section.1" 会让 CSS 选择器 #section.1 误判为 class)
真正卡住新手的,往往不是“会不会写某个标签”,而是浏览器默默纠错后,DOM 结构和预期不一致——建议写完立刻右键「查看网页源代码」,再对比「检查元素」里的实际渲染树,差哪一层,就修哪一层。
