Есть ли способ смешивать идентификаторы и классы с> в CSS - PullRequest
1 голос
/ 28 июля 2011

Я хочу сделать что-то вроде:

#div_id > .some_class 
{
}

Я не хочу менять класс везде.Я хочу изменить класс, только если он находится в этом конкретном div.

Есть ли другой способ сделать то же самое?

Ответы [ 4 ]

1 голос
/ 28 июля 2011

Вы уже наткнулись на ответ сами:

#div_id > .class {
    /* CSS magic */
}

Выбирает .class, если это прямой потомок #div_id.Для всех потомков независимо от глубины используйте вместо этого селектор #div_id .class.

См. Также this JSFiddle .

1 голос
/ 28 июля 2011

Ваш вопрос уже содержит дочерний комбинатор CSS-селектор и будет нацелен на элементы с классом .some_class, которые дочерние элемента с идентификатором div_id, так что если у вас есть только один <div> с идентификатором div_id, тогда он будет only предназначаться для дочерних элементов с классом some_class. Так что он должен работать как и ожидалось, за исключением, конечно, IE6, который изначально не поддерживает этот селектор.

Если вы хотите выбрать внуков, используйте комбинатор потомков .

  • детский комбинатор body > p
  • Потомок комбинатор body p
0 голосов
/ 28 июля 2011

Ваш код выглядит хорошо для меня.Обратите внимание, что оператор> будет влиять только на потомков DIV, а не на потомков (то есть внуков).Удалите>, чтобы повлиять на все внутри DIV с классом .some_class.

0 голосов
/ 28 июля 2011

У вас, по сути, есть ответ. Если вы хотите изменить все классы в div, тогда селектор будет div#id .this_class. Если это только один экземпляр класса внутри div (скажем, у вас есть div с именем 'test' с тремя div s с классом 'test_class', тогда вы можете использовать селектор :nth-child() или :first-of-type селектор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...