2013-07-25 5 views
1

Как сделать селектор CSS совпадающим со всеми элементами в поддереве элемента, помеченного определенным классом?Выделить все элементы в подклассе

Я представляю CSS как следующее (где часть :subtree - это что-то делать).

.diagram:subtree 
{ 
    ... 
} 

Когда я пишу HTML вроде следующего, должен быть выбран элемент <div> и каждый внутри него.

<div class="diagram"> 
    ... 
</div> 
+0

Почему нисходящий сигнал? Confused ... –

ответ

5

Просто используйте descendant selector (пробел):

.diagram * { … } 

Это выбирает каждый элемент под любым элементом (ами), которые применили diagram класс.

Чтобы соответствовать как самого DIV и его потомки, использовать grouping:

.diagram, .diagram * { … } 

Цитирование спецификации:

Иногда авторы могут хотеть селекторы, чтобы соответствовать элементу, который является потомком другого элемента в дереве документов (например, «Совместить те элементы EM, которые содержатся элементом H1»). Селекторы потомков выражают такую ​​взаимосвязь в шаблоне. Селектор потомков состоит из двух или более селекторов, разделенных пробелом. Селектор потомков вида «А Б» совпадает, если элемент B является произвольным потомком некоторого предка элемента А.

+0

Учебник CSS, который я прошел, не упоминал эти селектор потомков. Спасибо, что связанный ресурс будет очень полезен. –

+1

@TimothyShields Мое удовольствие; спецификации W3C являются ИМХО, часто вполне читаемыми и предпочтительными для обучения. – Phrogz

+0

Мне любопытно, какой учебник CSS не будет упоминать о селекторах потомков, поскольку он, вероятно, входит в список пяти лучших концепций CSS. –

2

просто использовать этот код для его .diagram * {}

4
.diagram, .diagram * 

Это будет выбрать DIV .diagram. Пространство - это селектор потомков, а * - все элементы.

EDIT: Я думал, что ваш вопрос изначально сказал «включая элемент», следовательно, .diagram,, но вы можете просто удалить его, если хотите.

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