Во-первых, насколько важна для вас совместимость браузера?У всех упомянутых вами селекторов есть проблемы в различных версиях IE (IE8, очевидно, лучше, чем IE7, но даже в IE8 отсутствует множество CSS-селекторов)
Простые вложенные селекторы (т.е. просто пробел между именами CSS) будет работать для вас - хотя, как вы говорите, установка nav li {height:100px;}
устанавливает его для всех LI, вы можете переопределить это с помощью nav li li {height:300px;}
, чтобы установить внутренний обратно так, как вы этого хотите.
Если выЕсли вы хотите использовать «правильные» селекторы, вам нужен >
.
nav>ul>li {
height:100px;
}
Это повлияет только на внешние элементы LI, но не на внутренние.Однако, как я уже сказал, он не будет работать в более старых версиях IE (к счастью, он работает в IE7 и более поздних версиях, поэтому проблема заключается только в том, если вы хотите поддерживать IE6).
Вы говорите, что вынашел различные селекторы довольно трудно понять.Я рекомендую вам посетить Quirksmode .Для начала у него есть очень удобная таблица совместимости, показывающая, какие браузеры поддерживают какие селекторы, но также есть отличные примеры того, как работает каждый селектор, что должно помочь вам понять их немного лучше.