css的渲染原理

①、CSS是Cascading Style **Sheets**(层叠样式表)的简称

②、CSS语言是一种标记语言,它不需要编译,可以直接有浏览器解释执行(属于
浏览器解释性语言).在标准网页设计中负责网页内容(XHTML)的表现。

③、CSS是由W3C的CSS工作组产生和维护的。

一、浏览器是如何渲染和加载页面的

要搞懂这个可以从这个常规流程开始:

1、浏览器的下载顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的。

2、在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说所有相关联的元素都已经下载完)。

3、如果遇到语义解释性的标签嵌入文件(js脚本,css样式),那么此时的IE下载过程会启用单独连接进行下载。

4、并且在下载后进行解析,解析过程中,停止页面所有往下元素的下载。

5、样式表在下载完成后,将和以前下载的所有样式表一起进行解析,解析完成后,将对此前所有元素(含以前已经渲染的)重新进行渲染。

6、JS、CSS中如有重定义,后定义函数将覆盖前定义函数。

渲染的效率与下面三点有关:

1、CSS选择器的查询定位效率

2、浏览器的渲染模式和算法

3、要进行渲染内容的大小

二、CSS的渲染原理

1、浏览器在接收到服务器返回的html页面后,

2、浏览器开始构建DOM树 DOM TREE,遇到CSS样式会构建CSS规则树 CSS RULE TREE,

3、遇到 javascript会通过 DOM API和CSSDOM API来操作DOM TREE和 CSS RuLe Tree,

4、浏览器引擎会通过DOM Tree和CSS Rule Tree,解析完成后,

5、最后,渲染树构建完成后就是“布局”处理,也就是确实每个节点在屏幕上的确切显示位置

6、下个步骤(渲染之后),开始“绘制”,便利渲染树,并用UI后端层,将每一个节点绘制出来!有道云笔记

三、CSS渲染规则

css的渲染规则,是从上到下从左到右渲染的。

.main h4  a { font-size: 14px; }

渲染过程是这样的:首先先找到所有的a,沿着a的父元素查找h4,然后在沿着h4,查找.main。中途找到了符合匹配规则的节点就加入结果集。如果找到根元素的html都没有匹配,则这条路径不在遍历。下一个a开始重复这个查找匹配,直至没有a继续查找。

浏览器的这种规则是为了尽早过滤掉一些无关的样式规则和元素。

四、css权重值

权值,代表着优先级,权值越大,优先级越高。同种类型的选择器权重值相同,后定义的选择器会覆盖先定义的选择器。

1、important最高

2、内联:1000

3、ID:100

4、**class**:10

5、Tag:1

 注:组合使用,权值会叠加

五、影响DOM树构建的因素

1、HTML响应流被阻塞在网络中

2、有加载未完成的脚本

3、遇到 div>Hi again

1、解析器遇到example.css,并将它从网络中下载下来。下载样式表的过程是耗时的,但是解析器并没有被阻塞,继续往下解析。

2、解析器遇到

你可能感兴趣的:(css的渲染原理)