Что быстрее?
Как говорили Коди и Тридцать, теоретически использование >
должно быть быстрее, но даже стилизация для IE6 - это пустая трата времени, чем стилизация для производительности,Браузеры достаточно быстрые ;доверяйте своим браузерам , а не людям , которые вам это говорят, особенно тем, кто не предоставляет browser тестов для подтверждения своих утверждений.
есть ли какие-нибудь проблемы с надежностью? 1011 *
Конечно.Помимо того, что IE6 вообще не поддерживает >
, как упоминается в тридцати точках, существует также разница в сопоставляемых элементах, поскольку >
и комбинаторы пробелов выбирают разные вещи:
<section class="slide">
<div>
<span></span> <!-- [1] -->
<div>
<span></span> <!-- [2] -->
</div>
</div>
<div>
<p>
<span></span> <!-- [3] -->
</p>
</div>
</section>
Что выбрано, а что нет:
Выбирается обоими селекторами
Этот span
является потомком div
, который является потомком элемента с классом slide
.Поскольку span
является потомком div
, он также является потомком div
.Аналогично для div
и его .slide
родителя / предка.
При наведении на элемент .slide
выбирается span
.Применяется второе правило, поскольку оба селектора имеют одинаковую специфичность, но второй, ну, в общем, идет вторым.
Выбирается только по .slide:hover div span
Этот span
находится в div
, , но его родительский элемент div
находится в другом div
, который не имеет класса slide
.Поэтому первый селектор не находит этот элемент.
Внутренний родительский элемент div
, однако, является внуком элемента .slide
.Независимо от глубины, он все равно в некотором роде является потомком .slide
(он содержится где-то внутри него).
При наведении на элемент .slide
этот span
выбирается.Применяется второе правило, поскольку оно соответствует только одному.
Выбирается только .slide:hover div span
Родитель этого span
являетсяp
элемент, а не div
.Достаточно просто;первый селектор не находит этот элемент.
Однако span
- это внук элемента div
, который сам находится внутри .slide
.
При зависанииэлемент .slide
, этот span
выбран.Применяемое правило - второе, потому что оно соответствует только одному.
И последнее: во всех трех сценариях вы обнаружите, что применяются правила только во втором селекторе. Это чисто случайно ;различия в том, как поддерживающие браузеры ищут элементы для соответствия, все еще реальны.