У меня есть случай, когда у меня есть .menu
внутри #header
и когда доступ .menu
«s детей с помощью селектора CSS, как .menu a
, он использует #header a
вместо.`#parent span` стиль переопределения` .child span` стиль
Я ожидал, что .menu a
переопределить #header a
, поскольку он ближе к элементу a
. Почему это не происходит? Я предполагаю, что он имеет класс, сравнимый с id, основанный на приведенном ниже примере.
В примере, есть ли хороший способ переопределить #red span
css в пределах .blue span
без ограничения родительского стиля?
Под «хорошим способом» я полагаю, что я имею в виду гибкость. Например, .blue
может быть элементом, созданным инфраструктурой php, которая используется во многих местах (возможно, не в родительском элементе, образованном идентификатором, или, возможно, в родительском стиле, созданном на другом идентификаторе).
Адрес example. Все, кроме #green
еще будет красным:
HTML:
<div id="red">
<span>red</span>
<div class="blue">
<span>blue(class) - should be blue</span>
</div>
<div id="green">
<span>green(id) - should be green</span>
</div>
<div class="green">
<span>green(class) - should be green</span>
</div>
<div>
<span>no child div style - should still be red</span>
</div>
</div>
CSS:
#red span {
color: red;
}
.blue span {
color: blue;
}
.green, #green span {
color: green;
}
Основываясь на ответах (хотя полезно - я дал '+ 1') и то, что я видел в другом месте ... кажется, нет практического решения для этого с гибкостью, которую я искал без изменения DOM или использования '! important'. Мне просто нужно найти способы обойти эту функцию CSS, в моем текущем сценарии я думаю, что я добавлю класс родительскому и стилю, а не идентификатор. – smerny
В первых двух параграфах описывается сценарий, отличный от другого, представленного в вопросе. Заголовок вопроса вводит в заблуждение, так как речь идет не о «родительском стиле», который переопределяет что-либо. –
@smerny проверить новое дополнение к моему ответу. –