html缩进是快速定位嵌套错误的关键防线,必须统一用2个空格而非tab,子元素缩进一层且闭合标签与开始标签垂直对齐,配合prettier和vs code配置实现自动化。

HTML格式化不是“让代码看起来更漂亮”的装饰活,而是防止你和同事在改一个 div 时,误删了它包裹的 form 闭合标签——浏览器不报错,但表单就突然不提交了。
缩进错位比语法错误更难定位
HTML 不依赖换行或空格渲染,但人依赖缩进来识别嵌套关系。缩进混乱时,<section></section> 看起来像在 <header></header> 里,实际却漏写了闭合标签,或者多了一层没配对的 <div>。<ul>
<li>统一用 <code>2 个空格缩进(不是 Tab),避免不同编辑器显示不一致
<main></main>、<article></article>、<nav></nav>)独占一行<p>内容<strong>重点</strong></p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill5493" title="html-to-pptx"><img
src="https://img.php.cn/upload/skill/000/000/081/179051045119472.jpg" alt="html-to-pptx" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/skill5493" title="html-to-pptx" class="overflowclass">html-to-pptx</a>
<p class="overflowclass">将多页 HTML 演示文稿转换为美化的 PPTX 文件,便于分享和分发。</p>
</div>
<a rel="nofollow" href="/xiazai/skill5493" title="html-to-pptx" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div> 可接受;但 <section><h2>标题</h2>
<ul>...</ul></section> 写在同一行,就丧失结构可视性语义化标签直接降低理解成本
看到 <div class="nav">,没人知道它是导航栏还是侧边广告;换成 <code><nav></nav>,结构意图立刻明确,屏幕阅读器也能正确播报。
-
<main></main>全页只能出现一次,且必须包裹核心内容 -
<section></section>必须有主题,建议紧跟<h2></h2>或更高级别标题 - 表单就用
<form></form>,按钮就用<button></button>,别用<div role="button"> 模拟<li>避免 <code><div class="wrapper"><div class="inner"><div class="content"> 这类无意义嵌套<h3>类名和注释要帮人快速判断“这是什么”,而不是“它长什么样”</h3> <p>写 <code>class="red-btn",等按钮改成蓝色时,这个类名就成误导;加注释<!-- .product-card -->比写<!-- 这里是商品卡片 -->更简洁有效。- 类名用 kebab-case,表达用途:比如
search-submit、error-message,而非btn-1或yonghu - 大型容器起始和结束处加对称注释:
<!-- .sidebar -->和<!-- /.sidebar --> - 避免注释显而易见的内容,比如不要在
<header></header>上写<!-- 这是页头 --> - 注释只说明特殊布局逻辑或交互依赖,例如:
<!-- required for sticky-nav JS hook -->
最常被忽略的是:格式化不能靠眼睛盯出来。手动缩进、手动对齐、手动加空行,长期协作下必然失守。真正可靠的起点,是把
prettier集成进编辑器并开启editor.formatOnSave,再配合html.format.indentInnerHtml: true这类 VSCode 原生配置——人负责语义判断,工具负责机械执行。 - 类名用 kebab-case,表达用途:比如










