与传统 div 相比,使用 html5 语义标签有什么缺点吗?
Are there any downsides to using html5 semantic tags over traditional divs?
The inverse question has been asked multiple times。但是,我既找不到任何缺点,也找不到令人信服的证据证明它们完全不存在。
我完全支持进步和语义文档。事实上,我很久以前就开始在我的标记中使用新的语义标签(感觉很好!)。我仍然想知道是否有任何(可能是模糊的)注意事项应该知道。
- 在运行史前版本 IE 的办公机器上,渲染会中断(更多)吗?
- css 选择器的向后兼容性,例如
article
?
- DOM 的奇怪副作用?
- ...(任何东西)?
一些旧版浏览器无法识别 html5 元素。充其量这意味着您必须为 CSS 中的那些元素定义默认样式规则。
在某些情况下,您可能需要应用垫片,或者在这种情况下,应用 shiv:
https://css-tricks.com/snippets/javascript/make-html5-elements-work-in-old-ie/
同样,旧浏览器(我在看你,IE)甚至不会将它们识别为元素,所以是的,它可能会改变你的 DOM 的结构。另外,我看到旧浏览器只是将 html5 标签输出为纯文本,因此您会在内容中看到 <article>
标签。
如果您碰巧遇到无法支持新的 html5 元素的情况,一个方便的解决方法是使用 div 并为它们提供与所需元素名称匹配的 类。因此,例如您将使用:
<div class="article">
代替
<article>
这种方法的好处是可以坚持新的 "mental model",您仍然可以根据文章和旁白之类的内容来考虑您的内容。这种方法还有一个好处,就是在将来某个时候将代码升级到完整的 html5 规范相对简单,因为您所要做的就是搜索 类 并将 div 替换为合适。
The inverse question has been asked multiple times。但是,我既找不到任何缺点,也找不到令人信服的证据证明它们完全不存在。
我完全支持进步和语义文档。事实上,我很久以前就开始在我的标记中使用新的语义标签(感觉很好!)。我仍然想知道是否有任何(可能是模糊的)注意事项应该知道。
- 在运行史前版本 IE 的办公机器上,渲染会中断(更多)吗?
- css 选择器的向后兼容性,例如
article
? - DOM 的奇怪副作用?
- ...(任何东西)?
一些旧版浏览器无法识别 html5 元素。充其量这意味着您必须为 CSS 中的那些元素定义默认样式规则。
在某些情况下,您可能需要应用垫片,或者在这种情况下,应用 shiv: https://css-tricks.com/snippets/javascript/make-html5-elements-work-in-old-ie/
同样,旧浏览器(我在看你,IE)甚至不会将它们识别为元素,所以是的,它可能会改变你的 DOM 的结构。另外,我看到旧浏览器只是将 html5 标签输出为纯文本,因此您会在内容中看到 <article>
标签。
如果您碰巧遇到无法支持新的 html5 元素的情况,一个方便的解决方法是使用 div 并为它们提供与所需元素名称匹配的 类。因此,例如您将使用:
<div class="article">
代替
<article>
这种方法的好处是可以坚持新的 "mental model",您仍然可以根据文章和旁白之类的内容来考虑您的内容。这种方法还有一个好处,就是在将来某个时候将代码升级到完整的 html5 规范相对简单,因为您所要做的就是搜索 类 并将 div 替换为合适。