При закрытии подписчики были переданы в рассылку "Заметки Дизайнера" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Номер: 38 Дата: 2008-11-13 |
Самоучитель по HTML и CSS
7. Дочерние селекторыДочерним называется элемент, который непосредственно располагается внутри родительского элемента. Чтобы лучше понять отношения между элементами документа, разберем небольшой код (пример 7.1). Пример 7.1. Вложенность элементов в документе
В данном примере применяется несколько контейнеров, которые в коде располагаются один в другом. Нагляднее это видно на дереве элементов, так называется структура отношений тегов документа между собой (рис. 7.1). Рис. 7.1. Дерево элементов для примера На рис. 7.1 в удобном виде представлена вложенность элементов и их иерархия. Здесь дочерним элементом по отношению к тегу <DIV> выступает тег <P>. Вместе с тем тег <STRONG> не является дочерним для тега <DIV>, поскольку он расположен в контейнере <P>. Вернемся теперь к селекторам. Дочерним селектором считается такой, который в дереве элементов находится прямо внутри родительского элемента. Синтаксис применения таких селекторов следующий. Селектор 1 > Селектор 2 { Описание правил стиля } Стиль применяется к Селектору 2, но только в том случае, если он является дочерним для Селектора 1. Если снова обратиться к примеру 7.1, то стиль вида P > EM { color: red } будет установлен для первого абзаца документа, поскольку тег <EM> находится внутри контейнера <P>, и не даст никакого результата для второго абзаца. А все из-за того, что тег <EM> во втором абзаце расположен в контейнере <STRONG>, поэтому нарушается условие вложенности. По своей логике дочерние селекторы похожи на селекторы контекстные. Разница между ними следующая. Стиль к дочернему селектору применяется только в том случае, когда он является прямым потомком, иными словами, непосредственно располагается внутри родительского элемента. Для контекстного селектора же допустим любой уровень вложенности. Чтобы стало понятно, о чем идет речь, разберем следующий код (пример 7.2). Пример 7.2. Контекстные и дочерние селекторы
Результат данного примера показан на рис. 7.2. Рис. 7.2. Цвет текста, заданный с помощью дочернего селектора На тег <I> в примере действуют одновременно два правила: контекстный селектор (тег <I> расположен внутри <DIV>) и дочерний селектор (тег <I> является дочерним по отношению к <P>). При этом правила являются равносильными, поскольку все условия для них выполняются и противоречат друг другу. В подобных случаях применяется стиль, который расположен в коде ниже, поэтому курсивный текст отображается красным цветом. Стоит поменять правила местами и поставить DIV I ниже, как цвет текста изменится с красного на зеленый. Заметим, что в большинстве случаев от добавления дочерних селекторов можно отказаться, заменив их контекстными селекторами. Однако использование дочерних селекторов расширяет возможности по управлению стилями элементов, что в итоге позволяет получить нужный результат, а также простой и наглядный код. Удобнее всего применять указанные селекторы для элементов, которые обладают иерархической структурой — сюда относятся, например, таблицы и разные списки. В примере 7.3 показано изменение вида списка с помощью стилей. За счет вложения одного списка в другой получаем разновидность меню. Заголовки при этом располагаются горизонтально, а набор ссылок — вертикально под заголовками (рис. 7.3). Рис. 7.3 Список в виде меню Для размещения текста по горизонтали к селектору LI добавляется стилевой атрибут float. Чтобы при этом разделить между собой стиль горизонтального и вертикального списка и применяются дочерние селекторы (пример 7.3). Пример 7.3. Использование дочерних селекторов
В данном примере дочерние селекторы требуются, чтобы разделить стиль элементов списка верхнего уровня и вложенные списки, которые выполняют разные задачи, поэтому стиль для них не должен пересекаться. Вопросы для проверки1. Какой цвет будет у жирного курсивного текста в коде <p>Нормы освещенности построены на <b><i>основе классификации зрительных работ</i></b> по определенным количественным признакам.</p> При использовании следующего стиля? P { color: green; }
2. Какой элемент является родительским для тега <TITLE>?
3. Элемент <!DOCTYPE> для какого тега выступает родителем?
Задание1. Измените пример 7.3, чтобы результат остался тот же, но используя только контекстные селекторы. 2. Есть следующий код (менять его запрещено) <p><span>Синий</span> — <span>Красный</span></p> Необходимо написать стиль, чтобы слово «Синий» выделялялось синим цветом, слово «Красный» красным, а тире — черным. РецептыКак открыть ссылку в новом окне?Для открытия ссылки в новом окне применяется параметр target со значением _blank, который добавляется к тегу <A>, как показано в примере 1. Пример 1. Открытие ссылки в новом окне
Учтите, что при использовании строгого <!DOCTYPE> параметр target осуждается и код с ним не пройдет валидацию. Чтобы в таком случае соблюсти корректность кода, недостаточно HTML и CSS и придется обратиться к скриптам. Вначале необходимо выделить ссылки, которые будут открываться в новом окне другим способом, например, параметром rel со значением external. Этот параметр кратко описывает ссылку или куда она ведет. Браузеры не воспринимают этот параметр, но это и не требуется, поскольку мы будем проверять все ссылки на предмет наличия этого параметра через JavaScript (пример 2). К нужным ссылкам добавляется все тот же параметр target. Но так как это делается программно, то валидатор уловки не заметит. Пример 2. Открытие ссылки через JavaScript
Copyright 2007—2008 Влад Мержевич. По всем вопросам пишите по адресу vlad@htmlbook.ru
|
В избранное | ||