Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSS-5.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
819 Кб
Скачать
☆

Пример 7.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Дочерние селекторы</title>

<style type="text/css">

DIV I { /* Контекстный селектор */

color: green; /* Зеленый цвет текста */

}

P > I { /* Дочерний селектор */

color: red; /* Красный цвет текста */

}

</style>

</head>

<body>

<div>

<p><i>Построенный из красного песчаника, собор Нотр-Дам прошел через

несколько фаз при строительстве. </i><br />

Апсида и трансепт - конца

двенадцатого века, неф - из следующего века, вместе с витражами

на окнах, в то время как фасад - из пятнадцатого века, а шпиль,

возвышающийся над зданием построен в 1439г.</p>

<p><i> Известные астрономические

часы внутри - 1571г.</i><br />

Тем не менее, все это вместе дает чувство

единства из-за вертикального ритма, который оживляет фасад,

феерического цвета камня и стиля статуй, показывающих и пороки, и

добродетели.</p>

</div>

</body>

</html>

рис. 7.

На тег <i> в примере действуют одновременно два правила: контекстный селектор (тег <i> расположен внутри <div>) и дочерний селектор (тег <i> является дочерним по отношению к <p>). При этом правила являются равносильными, поскольку все условия для них выполняются и не противоречат друг другу. В подобных случаях применяется стиль, который расположен в коде ниже, поэтому курсивный текст отображается красным цветом. Стоит поменять правила местами и поставить DIV I ниже, как цвет текста изменится с красного на зеленый.

Заметим, что в большинстве случаев от добавления дочерних селекторов можно отказаться, заменив их контекстными селекторами. Однако использование дочерних селекторов расширяет возможности по управлению стилями элементов, что в итоге позволяет получить нужный результат, а также простой и наглядный код.

Удобнее всего применять указанные селекторы для элементов, которые обладают иерархической структурой — сюда относятся, например, таблицы и разные списки. В примере 8 показано изменение вида списка с помощью стилей. За счет вложения одного списка в другой получаем разновидность меню. Заголовки при этом располагаются горизонтально, а набор ссылок — вертикально под заголовками (рис. 8).

рис. 8.

Для размещения текста по горизонтали к селектору LI добавляется стилевое свойство float. Чтобы при этом разделить между собой стиль горизонтального и вертикального списка и применяются дочерние селекторы (пример 8).

Пример 8.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Дочерние селекторы</title>

<style type="text/css">

UL#menu {

margin: 0; padding: 0; /* Убираем отступы */

}

UL#menu > LI {

list-style: none; /* Убираем маркеры списка */

width: 100px; /* Ширина элемента в пикселах */

background: #b3d9d2; /* Цвет фона */

color: #333; /* Цвет текста */

padding: 5px; /* Поля вокруг текста */

font-family: Arial, sans-serif; /* Рубленый шрифт */

font-size: 90%; /* Размер шрифта */

font-weight: bold; /* Жирное начертание */

float: left; /* Располагаем элементы по горизонтали */

}

LI > UL {

list-style: none; /* Убираем маркеры списка */

margin: 0; padding: 0; /* Убираем отступы вокруг элементов списка */

border-bottom: 1px solid #666; /* Граница внизу */

padding-top: 5px; /* Добавляем отступ сверху */

}

LI > A {

display: block; /* Ссылки отображаются в виде блока */

font-weight: normal; /* Нормальное начертание текста */

font-size: 90%; /* Размер шрифта */

background: #fff; /* Цвет фона */

border: 1px solid #666; /* Параметры рамки */

border-bottom: none; /* Убираем границу снизу */

padding: 5px; /* Поля вокруг текста */

}

</style>

</head>

<body>

<ul id="menu">

<li>Правка

<ul>

<li><a href="#">Отменить</a></li>

<li><a href="#">Вырезать</a></li>

<li><a href="#">Копировать</a></li>

<li><a href="#">Вставить</a></li>

</ul>

</li>

<li>Начертание

<ul>

<li><a href="#">Жирное</a></li>

<li><a href="#">Курсивное</a></li>

<li><a href="#">Подчеркнутое</a></li>

</ul>

</li>

<li>Размер

<ul>

<li><a href="#">Маленький</a></li>

<li><a href="#">Нормальный</a></li>

<li><a href="#">Средний</a></li>

<li><a href="#">Большой</a></li>

</ul>

</li>

</ul>

</body>

</html>

В данном примере дочерние селекторы требуются, чтобы разделить стиль элементов списка верхнего уровня и вложенные списки, которые выполняют разные задачи, поэтому стиль для них не должен пересекаться.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]