gpt4 book ai didi

javascript - HTML 中的哪些空白被视为空白节点

转载 作者:行者123 更新时间:2023-11-28 00:50:51 25 4
gpt4 key购买 nike

空白不是紧跟在开始 html 标签之后和紧接在结束 html 标签空白节点之前吗?考虑以下代码:

<!DOCTYPE HTML>
<html>
<head>
<title>The document</title>
</head>
<body>
<div>Data</div>
<ul>
<li>Warning</li>
<li></li>
</ul>
<div>Top Secret!</div>
</body>
</html>

现在,当我查看 Firebug 中渲染的页面时,我看到“head”节点有一个“title”节点,其两侧各有 2 个“whitespace”节点。这正是我所期望的。同样,我预计会在 <html> 之间看到“空白”节点。和<head></body> 之间和</html> 。但事实并非如此。为什么 Firebug 不将它们视为空格?

您也可以在 this 上尝试此操作在线 DOM 查看器。

最佳答案

我知道这是一个老问题,但它值得一个正确的答案,只要浏览器处理 <html> 之间的两种情况 (1) 即可。和<head> (2) </body> 之间和</html>不同。

在第一种情况下,浏览器会简单地丢弃空格字符。 "before head" insertion mode HTML 解析器的树构建阶段要求丢弃空格。尽管这很不寻常,但很可能是为了向后兼容。在 CSS 之前的日子里,浏览器可能需要丢弃这些字符,以阻止在显示文档的开头出现奇数空格。

在第二种情况下,空格字符不会被丢弃,它们会被添加到 DOM 文档中。但它们并不是作为文本节点添加到 body 元素之后,而是添加到 body 元素的末尾。因此,在 </body> 之间的 DOM 查看器中没有要显示的文本节点。和</html>标签。

关于javascript - HTML 中的哪些空白被视为空白节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26800626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com