在给定HTML和CSS文件的情况下,如何计算应用于节点的样式?样式可以直接(例如,#bar)或间接(例如,#foo li)应用
由于所应用的CSS取决于节点在树中的位置(例如,#foo> li仅适用于具有tagName li的#foo的直接后代),因此您首先必须将CSS中的每个规则与DOM匹配,然后针对考虑到每个选择器的权重,每个节点都要计算得出的CSS。我不确定用于计算CSS权重的确切公式,但这有点像number of #id selectors
* 100 + number of .class selectors
* 10 + number of tag selectors
。当然,您必须注意内联样式和!重要事项也是如此。
为了将CSS映射到DOM节点,您可以使用查询引擎,例如phpQuery或php-selector。
我已经编写了概念验证脚本php-effective-css,它说明了第一步(将CSS映射到受每个规则影响的DOM节点)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句