Селекторы потомков CSS

Селекторы потомков CSS

Всем доброго времени суток. На связи Алексей Гулынин. Вы уже знаете несколько видов селекторов в CSS из этой статьи. В данной статье я бы хотел рассказать, что такое селекторы потомков в CSS. Давайте разберемся что такое родитель и потомок? Для браузера наша страница представляется в виде дерева. Самым верхним корневым тегом является тег <html> (крестный отец всех тегов), затем идут два других тега: это <head> и <body> (левая и правая рука крестного отца). В этих двух тегах находятся все остальные теги. Получается, что для тега <html> теги <head> и <body> являются потомками, а он для них предком.

Все теги на странице являются потомками тега <html>.

Давайте разберем пример со списком. Создадим ненумерованный список:

<html>
<head>
	<meta charset="utf-8"/>
</head>
<body>
	<ul>
		<li>Элемент списка №1</li>
		<li>Элемент списка №2</li>
		<li>Элемент списка №3</li>
	</ul>
</body>
</html>

В данном случае тег <meta> является потомком тега <head>. Теги <ul>, <li> являются потомками тега <body>. В свою же очередь, теги <li> являются потомками для тега <ul>, а он же в свою очередь является их родителем.

На этой системе основаны некоторые CSS селекторы, которые позволяют таким образом отбирать элементы.
Допустим, мы хотим сделать все элементы ненумерованного списка зеленым цветом. В данном случае можно было бы добавить класс каждому элементу или добавить уникальный идентификатор, а затем в файле стилей задать свойства. Можно сделать по-другому, используя селектор потомков в CSS:

ul li {
	color:green;
}

Думаю, здесь вопросов не должно возникнуть. Данная последовательность тегов может быть сколь угодно большой. Также она может включать в себя идентификаторы. Давайте наш список поместим в блок div с классом "block" и сделаем все элементы ненумерованного списка желтыми (для большей наглядности примера добавим ещё нумерованный список):

<html>
<head>
	<meta charset="utf-8"/>
</head>
<body>
	<div class="block">
		<ul>
			<li>Элемент списка №1</li>
			<li>Элемент списка №2</li>
			<li>Элемент списка №3</li>
		</ul>
		<ol>
			<li>Элемент списка №1</li>
			<li>Элемент списка №2</li>
			<li>Элемент списка №3</li>
		</ol>
	</div>
</body>
</html>

Файл стилей в данном случае будет иметь вид:

.block ul li {
	color:yellow;
}

После этого вы увидите, что все элементы ненумерованного списка стали желтыми, а нумерованного — нет (данный пример надуманный, можно было бы просто написать ul li и всё бы работало).

Домашнее задание: создайте два блока с различными идентификаторами. В каждом из этих блоков разместите по параграфу. В каждый параграф поместите по две произвольные ссылки. Седлайте ссылки одного блока красными, а другого зелеными.

В данной статье вы узнали, что такое селекторы потомков в CSS.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *