加载是异步,不会影响DOM树的构建,只是说在CSS没处理好以前,构建好的DOM并不会显示出来css
DOM去匹配css rule的时候必须先等页面的css都下载完成浏览器
流式渲染,每生成一个dom节点,便马上去匹配相应的css规则dom
: 子代,选中它的子节点
前进:一个 CSS 选择器按照 compound-selector来拆成数段,每当知足一段条件的时候,就前进一段。异步
后退:选择器的做用范围,匹配到本标签的结束标签时(做用范围边缘)回退。字体
后代选择器 “空格”
规则:spa
a#b .cls {设计
width: 100px; } <a id=b> <span>1<span> <span class=cls>2<span> </a> <span class=cls>3<span>
后继选择器“ ~ ”
规则:给选择器的激活- 带上一个条件:父元素
缘由:后继选择器只做用于一层.按照 DOM 树的构造顺序,4 在 3 和 5 中间,咱们就没有办法像前面讲的后代选择器同样经过激活或者关闭规则来实现匹配
过程:当前半段的 .cls 匹配成功时,后续 * 所匹配的全部元素的父元素都已经肯定了(后继节点和当前节点父元素相同是充分必要条件code
.cls~* { border:solid 1px green; } <div> <span>1<span> <span class=cls>2<span> <span> 3 <span>4</span> <span> <span>5</span> </div>
子代选择器“ >”
规则:拿当前节点的父元素做为父元素
当 DOM 树构造到 div 时,匹配了 CSS 规则的第一段
激活.cls而且指定父元素必须是当前 div图片
div>.cls { border:solid 1px green; } <div> <span>1<span> <span class=cls>2<span> <span> 3 <span>4</span> <span> <span>5</span> </div>
直接后继选择器“ +”get
其余
CSS 选择器还支持逗号分隔
视为两条规则的一种简易写法 a#b, .cls {} a#b {}
选择器可能有重合
使用树形结构来进行一些合并 #a .cls {} #a span {} #a>span {} #a < 空格 >.cls < 空格 >span
总结: