Браузер совпадает с справа налево , и любые неспецифические теги будут вызывать большее снижение производительности. *
1 & Ndash; Медленнее:
.foo p
2 & Ndash; Быстрее
.foo p.bar
В первом примере браузер сопоставляет ВСЕ абзацы, а затем сужает его до тех, чей предок имеет класс foo
.
Во втором примере браузер сопоставляет все элементы, имеющие класс bar
, затем сопоставляет подмножество, являющееся абзацами, а затем подмножество, предок которого имеет класс foo
.
Можно было бы ожидать, что начальный набор второго примера будет меньше, чем в первом примере.
* Имейте в виду, что попадание действительно станет очевидным только при плохо разработанном CSS на страницах, которые очень большие (мегабайты) и / или имеют много-много элементов (например, сотни span
с или div
с). Небольшие страницы с небольшим количеством элементов не увидят реального & mdash; снижения производительности - даже при плохо написанном CSS.