#css #css-selectors
#css #css-селекторы
Вопрос:
Я должен выбрать все элементы html (из * ), за исключением дочерних элементов одного конкретного div. как я могу использовать это из: не из css3?
(*) - children of (#myDiv)
Ответ №1:
Вы не можете этого сделать, поскольку селектор для поиска любого дочернего элемента #myDiv
был бы
#myDiv > *
Но это не простой селектор, который мог бы поместиться :not()
.
Лучше всего применять стили к *
и переопределять (или «возвращать») их в #myDiv > *
:
* {
color: red;
}
#myDiv > * {
color: black;
}
Комментарии:
1. У меня есть *{ padding: 0; margin: 0; border: 0 none; } И я не хочу сбрасывать настройки для одного из моих дочерних элементов #myDiv. пожалуйста, помогите мне в этом…
2. Если вы хотите применить отступы, поля и границы по умолчанию для браузера к элементам в
#myDiv
, это небольшая проблема. Но другого способа обойти это нет.3. Понравился тот факт, что вы объяснили, почему это не работает с :not (), это единственное, что делает этот ответ потрясающим.
4. @kuroir: И спасибо, что получили мой
css-selectors
ответ на этот вопрос! cl.ly/6UDY5. Старайтесь избегать использования слишком большого количества универсальных селекторов, поскольку они являются самым медленным видом селектора CSS (даже при использовании в сочетании с комбинаторами, поскольку браузеры анализируют селекторы справа налево).
Ответ №2:
Это должно сработать:
:root, :not(#myDiv) > *
Первая часть там будет соответствовать корневому элементу. Вторая часть будет сопоставлять что угодно с родительским элементом, если этот родительский элемент не является #myDiv
.
Комментарии:
1. Безусловно, имеет значение 1. Но, похоже, без явного переопределения для
#myDiv > *
оба наших правила могут не работать для свойств стиля, которые дочерние элементы наследуют от родителей по умолчанию, напримерcolor
. Взгляните на jsfiddle.net/BoltClock/bCkBp/7 (это работает, это просто наследуемостьcolor
, которая «ломает» его)2. Если вы установите
color
on#myDiv
, то#myDiv > *
цвет текста будет наследоваться по умолчанию, если вы не зададите#myDiv > *
его собственныйcolor
. Может быть или не быть тем, чего хочет OP, это просто что-то интересное, на что я подумал указать…3. L33t. Я не мог бы сказать лучше 🙂