css规则树

前面已经介绍过了,dom树和css树合并之后,形成一棵最终的RenderTree,最后这颗RenderTree才会被渲染到页面。

比如下面的css会转成下面的树

body { font-size: 16px }

p { font-weight: bold }

span { color: red }

p span { display: none }

img { float: right }

灰色的是继承过来的属性。

首先几个大标签,比如htlm肯定是最外面的,body,head,这几个并排在html下面。

只是说上面这个例子只有body,然后其他标签自然就是他的子标签啦。

最后的cssom树如上面所示.

就是根据了css来搞的。

 

css匹配原则

 

查找样式表是按照从右到左的顺序去匹配的。拿上面这个css图来说吧:

例如: body p span{font-size: 16px},先遍历整颗树的span标签,找到两个,分别是body-span标签和body-p-span,然后查找span的父类,淘汰掉body-span,找到body-p-span,再向上,就找到body,ok匹配结束,设想,如果span非常之多,然后有很多类似的后缀,比如body-b-div-span和html-b-div-span,我们要匹配的是body-b-div-span,这样子,html-b-div-span就完完全全多匹配了3次了(多匹配了b、div、span),这样子性能肯定是非常糟糕的。

所以,我们平时写CSS时,尽量用id和class,千万不要过渡层叠。因为用id或者class,可以迅速再cssom树上找到对应的class和id对应的css样式。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值