css中浏览器渲染过程的示例分析

这篇文章将为大家详细讲解有关css中浏览器渲染过程的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

说明

1、根据HTML构建HTML树(DOM)。

2、根据CS构建CSS树(CSSOM)。

3、将两棵树合并成一颗渲染树(render tree)。

4、Layout布局。

(文档流、盒模型、计算大小和位置)

5、Paint绘制。

(把边框颜色、文字颜色、阴影等画出来)

6、Compose合成。

(根据层叠关系展示画面)

如果是块级元素,就会设置好宽高,不存在任何问题。但如果是图片,此时是无法得知高度的(行内元素),只有等待第五步绘制以后再能确定高度。而图片的绘制需要时间,在尚未绘制完成的时候,获取到的高度则会出现问题。合理的解决方案是使用setTimeout延时获取div的高度。

<div></div>
 
<script>
    var odiv = document.getElementById('bgImg');
    odiv.innerHTML = '<img src="test.jpg">'
    
    setTimeout(() => {
        var oHeight = odiv.scrollHeight;
        console.log(oHeight);
    },100)
</script>

关于“css中浏览器渲染过程的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。