HTML中br与hr多余闭合标签的浏览器处理差异问询
为什么
<br></br>和<hr></hr>在浏览器中解析结果不同? 这两种元素的解析差异,核心在于HTML浏览器解析器针对不同空元素(void element)的容错兼容规则不同:
对于
<br>:
HTML规范里<br>属于空元素,本身不需要闭合标签。但当解析器遇到</br>时,会把这个“结束标签”当作一个新的<br>开始标签来处理——这是早期浏览器为了兼容不规范写法遗留的逻辑,所以<br></br>最终会被解析成两个独立的<br>元素。对于
<hr>:
同样作为空元素,解析器遇到</hr>时会直接忽略这个无效的结束标签,因为<hr>的规范逻辑是“不需要闭合”,所以整个<hr></hr>只会被解析成一个<hr>元素。
简单来说,这是浏览器在处理不符合规范的代码时,针对不同元素的历史兼容策略差异导致的结果。
内容的提问来源于stack exchange,提问作者Heiko Theißen
相关产品推荐
相关产品推荐

