J-J*_*J-J 4 html css css-selectors
我正在尝试<body>在CSS 中设置外部标记的背景图像:
<html>
<body>
...
#document
<html>
<body>
</body>
</html>
...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但是,我甚至无法选择其中一个<body>标签而不影响另一个标签.他们没有身份证,当我尝试通过儿童选择器选择#document使事情变得复杂时(我甚至不知道它是什么).如果我尝试类似的东西body html body {...},这些#document行为就像一个我无法通过的障碍,所以它不会选择内部身体标签.
有关如何选择其中一个身体标签的任何想法?
Bol*_*ock 12
给定的列表似乎是DOM检查器视图.在这种情况下,#document不引用id为"document"的任意元素 - 它指的是托管在<iframe>(参见Node.nodeName)中的文档.您可以在Firefox和Chrome的DOM检查员中看到这一点; 实际上,您甚至可以通过指向浏览器data:text/html,<iframe>,打开检查器并展开<iframe>节点来立即尝试.IE也显示嵌套树,但没有#document标记.
如果您看到背景图像从主文档流失到iframe,则表示iframe中的文档没有自己的背景.
选择器无法穿透多个/嵌套文档树; 它们已本地化为上下文文档.这意味着您无法在<iframe>包含该文档的文档中托管文档中的元素<iframe>.如果需要将样式应用于文档中的元素<iframe>,则需要在该内部文档中直接应用CSS,并且选择器的编写就好像您只使用该文档一样.
在某个不太可能的事件中,给定的列表是实际的源标记而不是DOM检查器视图,并且#document实际上是id为"document"的任意元素,那么您的内部<html>和<body>元素已被注销,作为HTML DOM可能一次只包含一个<html>和一个<body>元素; 这些将是你的外在的,而不是内在的.在这种情况下,您可以尝试选择#document并应用背景,但不保证它将正常工作.