Соседние селекторы CSS
Соседние селекторы CSS или как их еще называют селекторы-родственники, позволяют применить стили к элементу в тех случаях, когда он стоит в HTML-коде перед определенным элементом, то есть элементы в данном случае должны находиться на одном уровне вложенности. Соседние селекторы тоже являются составными и складываются из простых селекторов (классов, идентификаторов и т.д.).
Чтобы вы четко усвоили, что такое соседние элементы, давайте снова рассмотрим знакомый пример, только чуть-чуть измененный.
<тег1>
<тег2>...</тег2>
<тег3><тег4>...</тег4></тег3>
<тег5><тег6>...</тег6></тег5>
</тег1>
В этом примере есть всего две пары соседних элементов — это <тег2> и <тег3>, а также <тег3> и <тег5>, все. То есть <тег2> и <тег5> уже не являются соседями по отношению друг к другу., так как между ними стоит <тег3>.
Соседние селекторы образуются из двух или более обычных селекторов разделенных между собой знаком "+" (плюс), где сначала указывается самый первый элемент в коде, затем тот, который стоит за ним, потом тот, который стоит сразу за вторым и так далее. Как обычно, стили применяются к тому элементу, селектор которого находится последним в списке. Общий синтаксис.
Пробелы с обоих сторон знака "+" можно ставить, а можно и нет, по желанию.
Пример использования соседних селекторов в CSS
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Соседние селекторы</title>
<style type="text/css">
h1 + p {
color: red; /* красный цвет текста параграфа, когда он соседний с H1 */
}
p > em + strong {
text-decoration: underline; /* подчеркнутый текст у STRONG, когда он соседний с EM,
который, в свою очередь, является дочерним у P */
}
h1 + p + div {
color: green; /* зеленый цвет текста внутри DIV, когда он стоит сразу
после P, который стоит сразу после H1 */
}
</style>
</head>
<body>
<h1>Заголовок</h1>
<p>Текст. <strong>Strong.</strong> Текст. <em>Em.</em></p>
<p>Текст. <em>Em.</em> Текст. <strong>Strong.</strong></p>
<div>Текст. <em>Em.</em> Текст. <strong>Strong.</strong></div>
</body>
</html>
Результат в браузере
Текст. Strong. Текст. Em.
Текст. Em. Текст. Strong.
В этом примере только первый параграф с красным текстом и только <STRONG> второго параграфа подчеркнут, так как больше никакие элементы не соответствуют правилам заданных стилей. В частности, содержимое элемента <DIV> в данном случае не будет зеленого цвета, так как его от заголовка отделяет не один, а два параграфа. Кстати, как вы видите, во втором стиле были указаны сразу соседний и дочерний селекторы. Так я решил еще раз напомнить вам о том, что селекторы разных типов можно свободно объединять.
Браузер Internet Explorer 6.0 не понимает соседние селекторы (как и дочерние). Помните об этом.
Домашнее задание.
- Создайте на странице обычный двухколоночный макет с меню. Пусть у элементов списка меню будут макеры-изображения.
- Сделайте так, чтобы, если после тега заголовка <H2> сразу идет идет изображение, то оно всплывает влево.
- Создайте блок с размерами 200 на 200 пикселей и поставьте его по центру основной колонки. Внутри него поместите блок в 50 на 50 пикселей. Используя свойство position сделайте так, чтобы внутренний блок отступал от внешнего блока снизу на 20px, а слева на 20%.
- Не забудьте раскрасить все вами созданное хозяйство в какие-нибудь цвета, чтобы хорошо видеть результат.
Дочерние селекторы | ← Содержание → | Псевдоклассы |