显然,如果元素中</p>
没有结束标签而没有匹配的开始标签body
,则大多数(如果不是全部)浏览器将在其位置生成一个空段:
<!DOCTYPE html>
<title></title>
<body>
</p>
</body>
即使end标记周围存在任何文本,也不会将其作为此p
元素的一部分-它将始终为空,并且文本节点将始终独立存在:
<!DOCTYPE html>
<title></title>
<body>
some text</p>more text
</body>
如果以上内容body
都包裹在<p>
和</p>
标记中,…我将让您猜测会发生什么:
<!DOCTYPE html>
<title></title>
<body>
<p>some text</p>more text</p>
</body>
有趣的是,如果</p>
标记之前没有<body>
或</body>
标记,则除IE9和更早版本之外的所有浏览器都 不会
生成空段落(另一方面,IE≤9始终会创建一个空段,而IE10和更高版本的行为与所有其他浏览器相同) :
<!DOCTYPE html>
<title></title>
</p>
<!DOCTYPE html>
<title></title>
</p><body>
<!DOCTYPE html>
<title></title>
</p></body>
我找不到任何规定没有相应开始标签的结束标签应生成一个空元素的引用,但是考虑到它甚至不是有效的HTML,这也就不足为奇了。确实,我只发现浏览器使用p
元素(在某种程度上也包括该br
元素!)来执行此操作,但是没有关于原因的任何解释。
尽管在传统模式和标准模式下都可以使用传统的HTML解析器和HTML5解析器,但在浏览器中它还是很一致的。因此,可以推断这是为了与早期规范或传统行为向后兼容。
标记有效且未关闭的原因是,最初
被定义为“新段落”标记,而不是p是容器元素。等效于
是“换行”标记。你可以看到这个文件中这样定义从1992年:而这一次从1993年:由于存在更改之前的网页,并且浏览器解析器始终与现有Web内容尽可能向后兼容,因此始终可以使用
那样。
但这并不能完全解释为什么解析器将显式</p>
结束标记(带有斜线)简单地视为一个标记,并在DOM中生成一个空元素。一些解析器错误处理从归途公约的这一部分时,语法是不是严格定义,因为它是更加最近的东西?如果是这样,是否在任何地方都有记录?
这 则需要在HTML5被记录在案。看到并向下搜索An end tag whose tag name is "p"
,它说:
如果打开元素堆栈在按钮作用域中没有与标记具有相同标签名称的元素,则这是解析错误;就像看到带有标签名称“ p”的开始标签一样,然后重新处理当前令牌。
翻译成英文意味着p
如果</p>
标签不能与现有<p>
标签匹配,则创建一个元素。
为什么 会这样,很难确定。通常,这是因为过去某些浏览器导致此错误的发生,并且网页开始依赖此行为,因此其他浏览器也必须实现它。
显然,如果你有一个
问题内容: 抱歉,这听起来太简单了。我是Java的新手。 这是我用来检查的一些简单代码。当我运行它时,我无法停止它。我以为如果不写任何输入并按,就可以避免循环。 有人可以向我解释在这种情况下如何工作吗? 问题答案: 从System.in读取时,默认情况下是从键盘读取的,这是一个无限的输入流……它的行数与用户希望输入的行数相同。我认为发送EOF的控制序列可能会起作用,例如CTL-Z(或者是CTL-D
以下是有趣的: 它会生成如下错误: 只要我将其中一个空值更改为非空值,它就会工作。我想我明白了,因为在这个领域无法做出任何推断,但这确实看起来很奇怪。想法?
为什么以下未有效使用的行(在方法中:getAllDefinedVars)会对最终结果产生影响: List collect=AllVars.Stream().Filter(v->false).collect(Collectors.ToList()); 如果我删除整个方法和调用此方法的一行代码(generateOneSetOfBools中的第一行),我最终会得到另一个结果。 如果... 提到的行对列表
当我发现这个奇怪的东西时,我正在玩JSX。使用以下JSX: 会产生正确的结果: 但我想在引号周围添加双引号,因此我尝试: 令我惊讶的是,它给出了正确的输出: 我希望得到类似的输出,因为它是字符串文字: 既然在字符串文本中,它为什么不按字面意思告诉我?这是巴贝尔的错误吗? 注意:这是一个自我提问和回答
v-html渲染<p>标签时渲染的结构与传入的结构不一致 传入的字符串结构是: -p -a 但是渲染出来的结构却是混乱的,经测试去掉<p>标签后就正常了。 使用的是vue2,由于在做的是编辑器,所以不可避免地有<p>标签的情况,想问下这是什么原因导致的渲染异常