2013-08-11 4 views
2

У меня есть список элементов:CSS: нет (литий>: первый-ребенок) селектор

<ul> 
    <li>Coca Cola</li> 
    <li>Tea</li> 
    <li>Coffee 
    <ul> 
     <li>White Coffee</li> 
     <li>Black Coffee</li> 
     <li>Coffee Low Caffein</li> 
    </ul> 
    </li> 
</ul> 

<ul> 
    <li>Coffee</li> 
    <li>Tea</li> 
    <li>Coca Cola</li> 
</ul> 

Я хочу, чтобы стиль, как это:

ul li:not(li>:first-child) 
{ 
    color:red; 
} 

ul li>:first-child 
{ 
    color:blue; 
} 

Вот мой jsfiddle, но это не работает с селектором ul li:not(li>:first-child). Я хочу получить окончательный результат fiddle, любые идеи?

+14

Почему вы не можете использовать код во второй скрипке? Также я не думаю, что ': first-child' делает то, что, по вашему мнению, делает. – BoltClock

+0

Вы также можете просто сделать «тело» ul> li {color: red; } '. – MrCode

+0

@BoltClock, вторая скрипка с синим цветом заменяет красный цвет. Я не хочу этого, у меня есть сложные правила CSS, и я хочу, чтобы он был создан один за другим. –

ответ

0

Я немного смущен, но в тех случаях, когда я хочу первый ребенок, чтобы иметь другой стиль, я на самом деле дать это ОТПРЫСКАМ желаемый альтернативный стиль:

li { 
    color:#00f; 
} 
li + li { 
    color:#f00; 
} 
+0

Вы пробовали свой код? –

+0

В каком смысле? Можете ли вы уточнить? Трудно не попробовать ... но на основании не вполне ясного вопроса OP, мой ответ уместен. – seemly

+0

Проверьте эту часть вопроса «Я хочу конечный результат, как эта скрипка», и сравните вывод, если вы используете свой код CSS. –

1
<ul id="first"> 

Для первого уровня из li

ul > li 
{ 
    color:red; 
} 

Для любого другого li после этого ..

ul#first > li li 
{ 
    color:blue; 
} 

Обновлено fiddle here.

0
ul li:not(:first-child) 
{ 
    color:red; 
} 

ul li:first-child 
{ 
    color:blue; 
}