美文网首页
浏览器是怎样解析 CSS 选择器的

浏览器是怎样解析 CSS 选择器的

作者: bestCindy | 来源:发表于2020-10-12 20:21 被阅读0次

首先,CSS 的读取顺序是从右向左

举个例子

.mod-nav h3 span { font-size: 16px }

它的读取顺序是:

  • 先找到所有的 span
  • 沿着 span 的父元素找到 h3
  • 如果中途找到了符合匹配规则的节点就加入结果集
  • 如果直到根元素 html 都没有匹配,就不再遍历这条路径
  • 从下一个 span 开始重复这个过程

那么,为什么读取顺序是从右向左呢?

举个例子:


假如 DOM 结构如上图,
假设匹配规则是 .mod-nav h3 span

如果从左向右匹配,过程是:

  • 遍历子节点 header 和子节点 div
  • 然后各自向子节点便利
  • 在右侧的 div 分支中,最后遍历到了叶子节点 a ,发现不符合规则,需要回溯到 ul 再遍历下一个 li-a
  • 假如,有 1000 个 li,则这 1000 次遍历与回溯会损失很多性能

如果从右向左匹配:

  • 先找到最有节点 span对于每一个 span
  • 向上寻找节点 h3
  • h3 再向上寻找 class=mod-nav 的节点
  • 最后直到 html 结束这个分支

总结:这是一个树形结构,很明显,从 child 开始找 parent 比从 parent 找 child 要高效

原文
https://www.cnblogs.com/zhaodongyu/p/3341080.html

相关文章

  • 【CSS】选择器解析规则

    当我们接触css选择起的时候,会认为浏览器解析css选择器是从左向右解析;其实不然浏览器解析css选择器是从右向左...

  • 2.CSS

    //CSS基础 Cascsding Style Sheet(层叠样式表)CSS选择器1.浏览器的解析方式是从右向...

  • CSS权重

    CSS权重:1、权重决定了你css规则怎样被浏览器解析直到生效。“css权重关系到你的css规则是怎样显示的”。2...

  • 有关CSS

    如何写出更好的CSS?(CSS是从右往左进行解析) ①避免使用*(全局)选择器。(耗费性能) ②CSS选择器的层级...

  • 浏览器是怎样解析 CSS 选择器的

    首先,CSS 的读取顺序是从右向左 举个例子 它的读取顺序是: 先找到所有的 span 沿着 span 的父元素找...

  • CSS权重

    权重决定了你css规则怎样被浏览器解析直到生效。“css权重关系到你的css规则是怎样显示的 权重记忆口诀。从0开...

  • 简析浏览器渲染机制

    浏览器渲染流程1.浏览器解析(1)浏览器解析HTML,构建DOM树(2)浏览器解析css,构建CSS规则树(2)解...

  • 使用CSS修改HTML5 input placeholder颜色

    **CSS选择器**因为每个浏览器的CSS选择器都有所差异,所以需要针对每个浏览器做单独的设定。 ::-webki...

  • 初识JavaScript

    1、CSS和JS在网页中的放置顺序是怎样的? 浏览器对于HTML的解析是自上而下逐行解析的,JS下载时会阻塞下面内...

  • 浏览器页面渲染机制

    一、所谓浏览器渲染,是个怎样的过程? 【答】浏览器引擎读取、解析html、css、js代码,生成可视化、可交互页面...

网友评论

      本文标题:浏览器是怎样解析 CSS 选择器的

      本文链接:https://www.haomeiwen.com/subject/wgyppktx.html