русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Дочерние селекторы


Дата добавления: 2015-07-09; просмотров: 633; Нарушение авторских прав


Дочерним называется элемент, который непосредственно располагается внутри родительского элемента. Чтобы лучше понять отношения между элементами документа, разберем небольшой код (пример 6.).

Пример 6.

<!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>NOTRDAM</title>

</head>

 

<body>

<div class="main">

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

несколько фаз при строительстве. </em> Апсида и трансепт - конца

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

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

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

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

часы внутри - 1571г.</em></strong> Тем не менее, все это вместе дает чувство

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

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

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

</div>

</body>

</html>

В данном примере применяется несколько контейнеров, которые в коде располагаются один в другом. Нагляднее это видно на дереве элементов, так называется структура отношений тегов документа между собой (рис. 6.).

 

 
 

 


Рис. 6. Дерево элементов для примера

На рис. 6 в удобном виде представлена вложенность элементов и их иерархия. Здесь дочерним элементом по отношению к тегу<div> выступает тег <p>. Вместе с тем тег <strong> не является дочерним для тега <div>, поскольку он расположен в контейнере<p>.



Вернемся теперь к селекторам. Дочерним селектором считается такой, который в дереве элементов находится прямо внутри родительского элемента. Синтаксис применения таких селекторов следующий.

Селектор 1 > Селектор 2 { Описание правил стиля }

Стиль применяется к Селектору 2, но только в том случае, если он является дочерним для Селектора 1.

Если снова обратиться к примеру 6, то стиль вида P > EM { color: red } будет установлен для первого абзаца документа, поскольку тег <em> находится внутри контейнера <p>, и не даст никакого результата для второго абзаца. А все из-за того, что тег <em> во втором абзаце расположен в контейнере <strong>, поэтому нарушается условие вложенности.

По своей логике дочерние селекторы похожи на селекторы контекстные. Разница между ними следующая. Стиль к дочернему селектору применяется только в том случае, когда он является прямым потомком, иными словами, непосредственно располагается внутри родительского элемента. Для контекстного селектора же допустим любой уровень вложенности. Чтобы стало понятно, о чем идет речь, разберем следующий код (пример 7).

Пример 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>

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

Задания:

Создайте web-страницу, показанную на рисунке ниже.

 
 

 



<== предыдущая лекция | следующая лекция ==>
Соседние селекторы | David Sawyer McFarland


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 5.65 сек.