当前位置: 首页 > Web前端 > CSS

【寒假再学前端笔记13】浏览器:浏览器是如何工作的?CSS计算

时间:2023-03-30 17:31:16 CSS

加载CSS加载是异步的,不会影响DOM树的构建。这只是意味着在处理CSS之前,构建的DOM不会显示。白屏时间长,不建议将图片/字体转成base64放在CSS中。当DOM匹配css规则后,首先要等待页面的css下载完成。灵感:在head中css要下载。如果将CSS放在正文中,它将重新计算css语法:选择器。你可以在课程9中了解更多选择器:复合选择器的特点(css设计原则):选择器出现的顺序必须与构建DOM树的顺序一致,即保证选择器能够准确判断是否它在DOM树构建到当前节点时匹配,不需要后续节点信息——以后不可能有“父元素选择器”。渲染,每生成一个dom节点,立即匹配对应的css规则Space:Descendants,选择它的子节点和所有子节点的后代节点:Descendants,选择它的子节点+:directsuccessorselector,选择它的下一个相邻node~:successor,选中后的所有相邻节点||:column,选中表格中的一列winter我就不说怎么解析css规则了,词法分析和语法分析就不重复了cssomCSSOM主要是DOM结构上面的框的描述,基本上是依附于DOM树,不要和css语法树混淆cssom有规则部分和视图部分,规则部分在dom开始之前完成,视图部分跟在dom之后是同步构建的。css选择器匹配过程推进:一个CSS选择器根据复合选择器拆分成若干段,每满足一个条件就推进一段。back:选择器的范围,当匹配到这个标签的结束标签(范围的边缘)时,会回退。后代选择器“空格”规则:前向:当找到匹配a#b的元素时,我们将开始检查其所有子元素是否匹配.cls(前进到.cls)后向:遇到时,我们必须制定规则a#b.cls后退一步(回到a#b)这样第三个span就不会被选中——后代选择器的范围是父节点的所有子节点,所以规则匹配到这个标签Fallbackwhenclosinga标签。a#b.cls{width:100px;123后继选择“~”规则:激活选择器-带条件:父元素原因:后继选择器只作用一层。根据DOM树的构造顺序,4在3和5之间,我们没有办法像之前那样做和上面说的后代选择器一样,匹配过程是通过激活或者关闭规则来实现的:当.前半部分的cls匹配成功,后面*匹配的所有元素的父元素都已经确定(后继节点与当前节点的父元素相同。充分必要条件.cls~*{border:solid1pxgreen;

12345
子选择器“>”规则:取当前节点的父元素为父元素,DOM树构造为div时,CSS规则的第一段匹配到activate.cls并且指定的父元素必须成为当前的divdiv>.cls{border:solid1pxgreen;}
12345
直接successorselector"+"思路一:只对only元素生效,#id+.cls作为选择器检查某个元素思路二:给successorselector加一个标志,让它匹配一次再匹配失败。列选择器“||”专门针对表的选择器,与表的模型建立有关。冬天不谈这个。其他CSS选择器也支持逗号分离被认为是写两个规则的简单方法a#b,.cls{}a#b{}选择器可能重叠使用树结构做一些合并#a.cls{}#aspan{}#a>span{}#a.clsspan总结:CSS计算:将CSS规则应用到DOM树的过程,为DOM结构添加显示相关的属性,得到一棵具有CSS属性的树简介如何实现几种compositestructuresofselectors延伸阅读:从Chrome源码看浏览器如何计算CSShttps://zhuanlan.zhihu.com/p/...