2008-11-18 4 views
4

Это HTML:CSS2 селекторы и стиль переопределения

<div id="testBlue"> 
    <span>hello</span> 
    <span id="testGreen" class="testGreen">hello2</span> 
</div> 

Если я поставил в CSS:

#testBlue span { color:Blue; }  
.testGreen, #testGreen { color:Green; } 

Как я могу переопределить общий стиль во втором SPAN?

Я пробовал как id, так и селектор классов, но он не переопределяет его.

ответ

9

В CSS селекторы с более высокими селекторов Специфичность отменяют, которые являются более общими.

В вашем примере вы определили стиль для диапазона внутри div с id = "testBlue". Этот селектор более конкретный, чем простой селектор для класса или id testGreen, поэтому он выигрывает. Вам просто нужно селектор более конкретные, чем #testBlue пролете, что не трудно найти:

#testBlue span.testGreen { 
    color: green; 
} 
3
#testGreen { color: red !important;} 

или

.testGreen { color: red !important;} 

Либо будет переопределить унаследованное правило, поскольку !important ставит больший вес одной стороны в противном случае равного решения.

+0

Вашего Solutio n работал, и я его поддержал, спасибо! Я принял тот, который дал @alexmeia, потому что для меня это проще. – 2008-11-18 11:34:36

+0

Я также думаю, что его решение приятнее. Вы должны также проголосовать за него. – Tomalak 2008-11-18 11:36:16

5

Dont использовать важно придать ему больший вес, как это

#testBlue span { color:Blue; } 
#testblue #testgreen{color:Red} 

Редактировать

Ive преподавали использованием важно! Плохая практика

Некоторые объекты в CSS имеют разный вес в решении применить правило

См. http://htmldog.com/guides/cssadvanced/specificity/

Я полагаю, его не неправильно использовать важные, но более практично использовать для взвешивания specicifity

+0

извините цвет: зеленый цвет должен быть цвет: красный – 2008-11-18 11:21:15

+0

Ну, тогда отредактируйте свой пост. Объясните, почему! Важно не оптимально, и я буду голосовать. – Tomalak 2008-11-18 11:22:16

0

Вы можете использовать селектор

#testBlue * { color:Blue; } 
0

Вы также можете использовать стандартные CSS DOM селекторы (так что вы можете оставить имена классов), как это:

#testblue > span:first-child + span{} 

пяди testblue ТО прямой потомок & & ПЕРВОГО РЕБЕНКА следующих родственный пролет

Смежные вопросы