Возможный дубликат:
Что означает «>» в правилах CSS?Я наткнулся на множество веб-сайтов и видел, как многие из них используют этот тип обозначений в своих файлах css для создания панели навигации, например:
#navigation ul li > ul { /* some code in between */ }
, но когда я опускаю знак
>
как#navigation ul li ul { /* some code in between */ }
, это все еще работает так же.
в чем разница и когда использовать знак
>
?
>
означает дочерний элемент - это дочерний селектор . То есть непосредственно / сразу вложено после.
Итак, в вашем первом примере, ul
в конце селектора должен быть прямо нисходящим из li
.
>
должен использоваться, когда второй операнд / элемент является дочерним элементом первого операнда / элемента. Когда это опущено; потомков сопоставляются, что включает в себя детей.
Поэтому, если ваш HTML структурирован так, как вы предлагали (#navigation ul li ul), то если у вас есть следующее в вашем CSS:
#navigation ul {color:red;}
Тогда оба #navigation ul
И #navigation ul li ul
будут окрашены в красный цвет (текст), поскольку они ОБА являются потомками из #navigation ul
.
Но если бы в вашем CSS было следующее:
#navigation > ul {color:red;}
Тогда только #navigation ul
будет окрашен в красный цвет, так как это единственный ul
, который является прямым потомком из #navigation