html快速生成多个段落标签,html – 为什么流浪结束标签生成一个空的段落?

显然,如果你有一个< / p>结束标签在body元素中没有匹配的开始标签,大多数(如果不是全部)浏览器将在其位置生成一个空白段落:

即使在结束标签周围存在任何文本,它也不会成为此p元素的一部分 – 它始终为空,文本节点将始终存在:

some text

more text

如果身体的上述内容包裹在< p>和< / p>标签…我会让你猜猜会发生什么:

some text

more text

有趣的是,如果< / p>标签之前没有< body>或< / body>除IE9及以上版本之外,所有浏览器都不会产生空白的段落(IE≤9,另一方面始终会创建一个,IE10和以后的行为与所有其他浏览器的行为一样):

我找不到任何引用,规定没有相应的开始标签的结束标签应该生成一个空的元素,但是不要以为它不是甚至没有有效的HTML首先出现的惊讶。实际上,我只发现浏览器使用p元素(以及某种程度上的br元素也可以这样做),但是没有解释为什么。

尽管使用传统的HTML解析器和HTML5解析器,但是跨浏览器使用的方式相当一致,而且在标准模式和标准模式下都适用。因此,推断这是为了与早期规范或遗留行为的向后兼容性可能是公平的。

The reason why

tags are valid unclosed is that originally

was defined as a “new paragraph” marker,rather than p being a container element. Equivalent to
being a “new line” marker. You can see so defined in this document from 1992:07002 and this one from 1993: 07003 Because there were web pages pre-dating the change and browser parsers have always been as backward compatible as possible with existing web content,it’s always stayed possible to use

that way.

但是这并不能解释为什么解析器对待一个显式的< / p>结束标签(带斜杠)只是一个标签,并在DOM中生成一个空的元素。当语法没有严格定义为more recently或某些东西时,这部分解析器错误处理惯例是否可以回溯?如果是这样,是否记录在任何地方?

@H_404_32@

需要的是在HTML5中记录。请参阅

http://dev.w3.org/html5/spec/tree-construction.html#parsing-main-inbody并搜索标签名称为“p”的结尾标签,并说:

If the stack of open elements does not have an element in button scope

with the same tag name as that of the token,then this is a parse

error; act as if a start tag with the tag name “p” had been seen,then

reprocess the current token.

翻译成英文意思是创建一个p元素,如果< / p>标签不能与现有的< p>标签。

为什么是这样,更难确定。通常这是因为一些浏览器在过去造成这种情况发生,作为一个bug,网页来依赖这个行为,所以其他浏览器也必须实现它。

@H_404_32@

@H_404_32@

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值