①、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