为什么渲染树不包含绝对定位的元素?

约格什

我在读有关渲染树的文章:

在构建DOM树时,浏览器将构建另一棵树,即渲染树。该树按显示顺序显示视觉元素。它是文档的视觉表示。渲染树不包含display:none,位置绝对元素HEAD。

最后一句话让我有些困惑。渲染树包含可见元素。因此,它应该包含绝对位置。浏览器如何呈现这些元素(display:none,定位绝对元素,HEAD)?有人可以详细解释吗?

http://taligarsiel.com/Projects/howbrowserswork1.htm

迈克尔·本杰明

我不确定您在哪里读取该信息,但是position: absolute(显然)呈现了元素。

有两棵树:DOM和CSSOM。两者结合在一起生成生成树,该树构建我们看到的页面。

根据Google Developers的说法,display: none不会渲染。但是也没有迹象表明它position: absolute也不会渲染。

Google Developers-渲染树的构造,布局和绘制

文章中的几点要点:

  • CSSOM和DOM树被合并到一个渲染树中,然后用于计算每个可见元素的布局,并用作将像素渲染到屏幕的绘制过程的输入。(强调我的)

  • 将DOM和CSSOM树合并以形成渲染树。渲染树仅包含渲染页面所需的节点。

  • 对于浏览器而言,第一步是将DOM和CSSOM组合成一个“渲染树”,该树捕获页面上所有可见的DOM内容以及每个节点的所有CSSOM样式信息。(强调我的)

  • 要构建渲染树,浏览器大致执行以下操作:

    • 从DOM树的根开始,遍历每个可见节点。

      • 一些节点根本不可见(例如脚本标签,元标签等),由于它们未反映在渲染的输出中,因此将其省略。

      • 一些节点通过CSS隐藏,并且在渲染树中也被省略-例如,在上例中,span节点在渲染树中缺失,因为我们有一个明确的规则来设置display: none属性。

    • 对于每个可见节点,找到合适的匹配CSSOM规则并应用它们。

    • 发出具有内容及其计算样式的可见节点。

  • 最终输出是一个渲染,该渲染同时包含内容和屏幕上所有可见内容 的样式信息(强调我的)

在此处阅读全文:渲染树的构造,布局和绘制

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么绝对定位的元素会比以前的绝对定位的元素渲染?

来自分类Dev

为什么不顶:0在相对于身体的绝对定位元素上起作用?

来自分类Dev

相对位置不包含绝对定位元素

来自分类Dev

为什么绝对定位元素显示在静态元素上?

来自分类Dev

父母身高不包含绝对定位的孩子

来自分类Dev

如果父元素是静态的,为什么绝对定位的元素自身不相对于父元素定位?

来自分类Dev

CSS:为什么'top:0px'不能在相对定位的div中正确定位绝对定位的'p'元素?

来自分类Dev

为什么不能相对于“位置:静态”的父对象定位“位置:绝对”元素?

来自分类Dev

为什么绝对定位元素要考虑保证金?

来自分类Dev

为什么页面底部没有裁剪我的绝对定位元素

来自分类Dev

CSS 为什么表格边框出现在子绝对定位元素中?

来自分类Dev

当使用jQuery为其父元素设置动画时,为什么绝对子元素定位元素会中断?

来自分类Dev

为什么ngRepeat在ngInclude或指令之后不包含元素?

来自分类Dev

为什么我的范围不包含循环更改元素?

来自分类Dev

为什么不渲染按钮?

来自分类Dev

为什么网格不渲染?

来自分类Dev

Bootstrap4列包含绝对定位的元素

来自分类Dev

为什么图像不尊重位置绝对?

来自分类Dev

绝对定位且不透明的黑色div不能覆盖某个元素,我不知道为什么

来自分类Dev

为什么绝对定位的图像仍会占用空间?

来自分类Dev

为什么绝对定位的div不从顶部开始?

来自分类Dev

为什么过渡对绝对定位的图像不起作用?

来自分类Dev

为什么我的桌子不局部渲染?

来自分类Dev

Bootstrap Jumbotron为什么不渲染?

来自分类Dev

为什么 React 组件不渲染?

来自分类Dev

绝对定位在非绝对元素后面

来自分类Dev

允许绝对定位的元素比父绝对定位的元素宽

来自分类Dev

固定和绝对定位的元素是否不像块元素那样占据其容器的整个宽度?如果是,那为什么呢?

来自分类Dev

无绝对定位伪元素

Related 相关文章

  1. 1

    为什么绝对定位的元素会比以前的绝对定位的元素渲染?

  2. 2

    为什么不顶:0在相对于身体的绝对定位元素上起作用?

  3. 3

    相对位置不包含绝对定位元素

  4. 4

    为什么绝对定位元素显示在静态元素上?

  5. 5

    父母身高不包含绝对定位的孩子

  6. 6

    如果父元素是静态的,为什么绝对定位的元素自身不相对于父元素定位?

  7. 7

    CSS:为什么'top:0px'不能在相对定位的div中正确定位绝对定位的'p'元素?

  8. 8

    为什么不能相对于“位置:静态”的父对象定位“位置:绝对”元素?

  9. 9

    为什么绝对定位元素要考虑保证金?

  10. 10

    为什么页面底部没有裁剪我的绝对定位元素

  11. 11

    CSS 为什么表格边框出现在子绝对定位元素中?

  12. 12

    当使用jQuery为其父元素设置动画时,为什么绝对子元素定位元素会中断?

  13. 13

    为什么ngRepeat在ngInclude或指令之后不包含元素?

  14. 14

    为什么我的范围不包含循环更改元素?

  15. 15

    为什么不渲染按钮?

  16. 16

    为什么网格不渲染?

  17. 17

    Bootstrap4列包含绝对定位的元素

  18. 18

    为什么图像不尊重位置绝对?

  19. 19

    绝对定位且不透明的黑色div不能覆盖某个元素,我不知道为什么

  20. 20

    为什么绝对定位的图像仍会占用空间?

  21. 21

    为什么绝对定位的div不从顶部开始?

  22. 22

    为什么过渡对绝对定位的图像不起作用?

  23. 23

    为什么我的桌子不局部渲染?

  24. 24

    Bootstrap Jumbotron为什么不渲染?

  25. 25

    为什么 React 组件不渲染?

  26. 26

    绝对定位在非绝对元素后面

  27. 27

    允许绝对定位的元素比父绝对定位的元素宽

  28. 28

    固定和绝对定位的元素是否不像块元素那样占据其容器的整个宽度?如果是,那为什么呢?

  29. 29

    无绝对定位伪元素

热门标签

归档