HTML5语义化标签到底该怎么用才对? 一致远 提问于 2026-03-04 21:59:24 阅读 21 前端 我最近在写一个博客页面,看到别人用 、 这些标签,但自己用的时候总是搞不清该用哪个。比如文章列表页,每个文章摘要应该包在 里还是 里? 我试过这样写: <section> <h2>最新文章</h2> <article> <h3>标题1</h3> <p>摘要内容...</p> </article> <article> <h3>标题2</h3> <p>摘要内容...</p> </article> </section> 但又看到有人把整个列表用 包起来,里面用 ,搞得我很困惑,到底哪种才是符合语义化的正确写法? Web API 我来解答 赞 10 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 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 加载更多 相关推荐 2 回答 42 浏览 Vite插件在HTML注入动态脚本时标签被转义怎么办? 我在用Vite写插件时想在HTML头部动态注入一个带有data-api-key的script标签,但发现内容被转义成文本了。比如用transformIndexHtml钩子处理时: // 插件代码片段 ... Mr-甜雅 前端 2026-02-06 19:06:28 2 回答 103 浏览 HTML表格标签缩进不统一,怎么按规范整理? 最近在维护团队项目时发现,不同开发者写的HTML表格标签缩进方式混乱,有的用2个空格,有的用Tab。比如: <table> <tr><th>标题</th>... a'ゞ淇钧 前端 2026-02-02 17:50:29 1 回答 13 浏览 Prettier 为什么没格式化我的 HTML 标签换行? 我用 Prettier 格式化 HTML 文件,但发现它没把长标签自动换行,看起来特别挤。明明在 .prettierrc 里设置了 printWidth: 80,为啥不起作用? 比如下面这段代码,Pr... Code°采涵 工具 2026-03-13 15:41:20 2 回答 21 浏览 Vite插件里怎么拦截并修改HTML内容? 我正在写一个Vite插件,想在开发服务器启动时动态修改index.html里的某个meta标签,但试了transformIndexHtml钩子好像没生效,控制台也不报错。 我查了文档说要用transf... Dev · 彩云 前端 2026-03-01 09:44:18 1 回答 23 浏览 HTML中SEO标签到底该怎么写才有效? 我最近在优化网站的SEO,但对meta标签的写法有点迷糊。比如description和keywords到底要不要写?写了会不会被搜索引擎忽略? 我试过这样写,但不确定是不是规范的做法: <hea... 技术艳丽 前端 2026-02-25 13:51:22 2 回答 175 浏览 Vue里用innerHTML显示用户评论内容,怎么防止XSS攻击啊? 我在做一个论坛帖子的评论展示功能,用v-html渲染用户提交的内容,但测试时发现能直接执行脚本标签。比如用户输入alert(1),页面真的会弹窗。试过用转义函数替换尖括号,但图片和链接标签也失效了,怎... 书生シ竞兮 安全 2026-02-01 14:29:42 1 回答 3 浏览 React中用dangerouslySetInnerHTML怎么防XSS攻击? 我在做一个富文本展示功能,后端返回的HTML字符串需要直接渲染,用了dangerouslySetInnerHTML,但担心XSS漏洞。试过自己写正则过滤script标签,但好像还是有风险,比如img的... 一振莉 安全 2026-03-14 12:46:22 1 回答 9 浏览 VSCode调试HTML文件时断点不生效怎么办? 我在用VSCode调试一个简单的本地HTML页面,但打的断点完全没反应,控制台也没报错,是不是配置有问题? 我试过用Live Server打开页面,也在launch.json里加了Chrome配置,但... Prog.喜静 工具 2026-03-12 21:45:22 1 回答 8 浏览 CEF加载本地HTML时样式错乱怎么办? 我用CEF做桌面应用,加载本地HTML文件时发现CSS样式完全没生效,控制台也没报错。明明在浏览器里打开是正常的,放到CEF里就排版全乱了。是不是路径问题?但我试了绝对路径和相对路径都不行。 这是我的... UX银银 框架 2026-03-12 20:13:21 1 回答 17 浏览 Trusted Types 下 Vue 动态渲染 HTML 报错怎么解决? 我在项目里启用了 Trusted Types 策略,结果用 v-html 渲染用户内容时报错了:This document requires 'TrustedHTML' assignment。之前直接... ___灏森 安全 2026-03-10 12:57:19
、 这些标签,但自己用的时候总是搞不清该用哪个。比如文章列表页,每个文章摘要应该包在 里还是 里? 我试过这样写: <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. 可以加上