HTML5语义化标签到底该怎么用才对? 一致远 提问于 2026-03-04 21:59:24 阅读 43 前端 我最近在写一个博客页面,看到别人用 、 这些标签,但自己用的时候总是搞不清该用哪个。比如文章列表页,每个文章摘要应该包在 里还是 里? 我试过这样写: <section> <h2>最新文章</h2> <article> <h3>标题1</h3> <p>摘要内容...</p> </article> <article> <h3>标题2</h3> <p>摘要内容...</p> </article> </section> 但又看到有人把整个列表用 包起来,里面用 ,搞得我很困惑,到底哪种才是符合语义化的正确写法? Web API 我来解答 赞 17 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 小东旭 Lv1 这个语义化标签的问题确实挺容易让人迷糊的,我来总结下常见的用法规则。 你现在的写法其实是对的, 和 的区别主要看内容独立性: - 包裹的是独立可分发的内容单元,比如单篇博客文章、新闻、论坛帖子等 - 是把相关的内容分组,通常需要一个标题,比如章节、标签页等 所以博客列表页的通用做法是: <section> <h2>最新文章</h2> <article> <h3>文章1标题</h3> <p>摘要...</p> </article> <article> <h3>文章2标题</h3> <p>摘要...</p> </article> </section> 有些人会用 包整个列表,但这不是必须的,除非你的页面有多个主要内容区域。记住一个原则:能不用包装就不用,过度嵌套反而降低可读性。 另外吐槽下,HTML5这些标签其实挺灵活的,只要别把用在明显不独立的内容上(比如页面footer),谷歌都能理解,不用太纠结。 回复 点赞 2 2026-03-07 22:02 松静 Dev Lv1 博客文章列表就该这么写,你第一版的写法已经是对的。表示独立的内容区块,表示可以独立存在的内容单元。下面是标准写法: 最新文章 文章标题 2023-06-15 文章摘要内容... 关键点: 1. 包裹整个文章列表区域 2. 每篇文章用独立包裹 3. 标题用而不是,因为已经被用了 4. 可以加上和 回复 点赞 1 2026-03-05 09:01 加载更多 相关推荐 1 回答 45 浏览 HTML5语义化标签到底该怎么用才对? 我最近在写一个博客页面,想用 HTML5 的语义化标签,但有点搞不清 <article>、<section> 和 <div> 到底啥时候该用哪个。 比如文章列表里的... 璐莹 Dev 前端 2026-03-15 17:48:30 2 回答 72 浏览 Vite插件在HTML注入动态脚本时标签被转义怎么办? 我在用Vite写插件时想在HTML头部动态注入一个带有data-api-key的script标签,但发现内容被转义成文本了。比如用transformIndexHtml钩子处理时: // 插件代码片段 ... Mr-甜雅 前端 2026-02-06 19:06:28 2 回答 118 浏览 HTML表格标签缩进不统一,怎么按规范整理? 最近在维护团队项目时发现,不同开发者写的HTML表格标签缩进方式混乱,有的用2个空格,有的用Tab。比如: <table> <tr><th>标题</th>... a'ゞ淇钧 前端 2026-02-02 17:50:29 1 回答 52 浏览 VSCode插件里怎么监听HTML文件的特定标签变化? 我在写一个VSCode扩展,想在用户编辑HTML文件时,自动检测是否新增了带有data-track属性的元素,但不知道该监听哪个事件。试过onDidChangeTextDocument,但拿到的cha... 一英瑞 工具 2026-03-30 00:34:13 2 回答 41 浏览 Prettier 的 htmlWhitespaceSensitivity 到底该怎么用? 我在用 Prettier 格式化 Vue 组件时,发现 HTML 里的空格有时候被删掉导致样式错乱。查了文档说可以用 htmlWhitespaceSensitivity 配置,但我设成 "strict... 端木梓希 工具 2026-03-21 12:37:21 2 回答 55 浏览 Prettier 为什么没格式化我的 HTML 标签换行? 我用 Prettier 格式化 HTML 文件,但发现它没把长标签自动换行,看起来特别挤。明明在 .prettierrc 里设置了 printWidth: 80,为啥不起作用? 比如下面这段代码,Pr... Code°采涵 工具 2026-03-13 15:41:20 2 回答 36 浏览 Vite插件里怎么拦截并修改HTML内容? 我正在写一个Vite插件,想在开发服务器启动时动态修改index.html里的某个meta标签,但试了transformIndexHtml钩子好像没生效,控制台也不报错。 我查了文档说要用transf... Dev · 彩云 前端 2026-03-01 09:44:18 1 回答 106 浏览 HTML中SEO标签到底该怎么写才有效? 我最近在优化网站的SEO,但对meta标签的写法有点迷糊。比如description和keywords到底要不要写?写了会不会被搜索引擎忽略? 我试过这样写,但不确定是不是规范的做法: <hea... 技术艳丽 前端 2026-02-25 13:51:22 2 回答 193 浏览 Vue里用innerHTML显示用户评论内容,怎么防止XSS攻击啊? 我在做一个论坛帖子的评论展示功能,用v-html渲染用户提交的内容,但测试时发现能直接执行脚本标签。比如用户输入alert(1),页面真的会弹窗。试过用转义函数替换尖括号,但图片和链接标签也失效了,怎... 书生シ竞兮 安全 2026-02-01 14:29:42 2 回答 36 浏览 VSCode 有哪些提升 HTML 开发效率的插件推荐? 最近在写静态页面,发现手写 HTML 太慢了,标签补全和格式化老是出问题。有没有好用的 VSCode 插件能智能提示、自动闭合标签,还能格式化得干净一点? 比如我写下面这种结构,经常忘记闭合 div,... a'ゞ庆庆 工具 2026-03-29 14:50:14
、 这些标签,但自己用的时候总是搞不清该用哪个。比如文章列表页,每个文章摘要应该包在 里还是 里? 我试过这样写: <section> <h2>最新文章</h2> <article> <h3>标题1</h3> <p>摘要内容...</p> </article> <article> <h3>标题2</h3> <p>摘要内容...</p> </article> </section> 但又看到有人把整个列表用 包起来,里面用 ,搞得我很困惑,到底哪种才是符合语义化的正确写法?
里还是 里? 我试过这样写: <section> <h2>最新文章</h2> <article> <h3>标题1</h3> <p>摘要内容...</p> </article> <article> <h3>标题2</h3> <p>摘要内容...</p> </article> </section> 但又看到有人把整个列表用 包起来,里面用 ,搞得我很困惑,到底哪种才是符合语义化的正确写法?
的区别主要看内容独立性: - 包裹的是独立可分发的内容单元,比如单篇博客文章、新闻、论坛帖子等 - 是把相关的内容分组,通常需要一个标题,比如章节、标签页等 所以博客列表页的通用做法是: <section> <h2>最新文章</h2> <article> <h3>文章1标题</h3> <p>摘要...</p> </article> <article> <h3>文章2标题</h3> <p>摘要...</p> </article> </section> 有些人会用 包整个列表,但这不是必须的,除非你的页面有多个主要内容区域。记住一个原则:能不用包装就不用,过度嵌套反而降低可读性。 另外吐槽下,HTML5这些标签其实挺灵活的,只要别把用在明显不独立的内容上(比如页面footer),谷歌都能理解,不用太纠结。
包裹的是独立可分发的内容单元,比如单篇博客文章、新闻、论坛帖子等 - 是把相关的内容分组,通常需要一个标题,比如章节、标签页等 所以博客列表页的通用做法是: <section> <h2>最新文章</h2> <article> <h3>文章1标题</h3> <p>摘要...</p> </article> <article> <h3>文章2标题</h3> <p>摘要...</p> </article> </section> 有些人会用 包整个列表,但这不是必须的,除非你的页面有多个主要内容区域。记住一个原则:能不用包装就不用,过度嵌套反而降低可读性。 另外吐槽下,HTML5这些标签其实挺灵活的,只要别把用在明显不独立的内容上(比如页面footer),谷歌都能理解,不用太纠结。
表示可以独立存在的内容单元。下面是标准写法: 最新文章 文章标题 2023-06-15 文章摘要内容... 关键点: 1. 包裹整个文章列表区域 2. 每篇文章用独立包裹 3. 标题用而不是,因为已经被用了 4. 可以加上和
你现在的写法其实是对的,
-
-
所以博客列表页的通用做法是:
有些人会用
另外吐槽下,HTML5这些标签其实挺灵活的,只要别把
关键点:
1.
2. 每篇文章用
3. 标题用
而不是
,因为
已经被用了和
4. 可以加上