- •Южно-Уральский государственный университет
- •И дизайн сайтов
- •Лабораторная работа № 1 Создание Web-страниц. Работа с текстом
- •1.1. Введение в язык html
- •Минимальный html-код
- •1.2. Основные теги языка html
- •1.2.5. Размер, гарнитура и цвет шрифта
- •1.2.6. Теги абзаца и перевода строки
- •1.2.2. Заголовок внутри документа
- •1.2.3. Теги для форматирования отдельных символов или групп символов
- •1.2.4. Физические теги форматирования
- •1.2.7. Выравнивание текста
- •1.2.8. Комментарии
- •1.2.9. Форматирование с использованием каскадных таблиц стилей (css)
- •1.2.9.1. Назначение стилей отдельным элементам страницы
- •1.2.9.2. Назначение стилей нескольким элементам одной страницы – создание внедренной таблицы стилей
- •1.2.9.3. В следующем примере в качестве селекторов используются непосредственно теги html
- •1.2.9.4. Селектор class
- •1.2.9.5. Идентификаторы селекторов
- •1.2.9.6. Контекстные селекторы
- •1.2.9.7. Назначение стилей для нескольких страниц сайта
- •1.2.9.8. Импортирование таблиц каскадных стилей
- •1.2.10.2. Свойства тега, определенные в .Block1 и .Block2 и другие часто применяемые свойства блоковых структур:
- •1.3. Задание к лабораторной работе №1
- •2.1.2. Теги абзаца и перевода строки для графики
- •2.1.3. Дополнительные элементы оформления
- •2.1.3.1. Разделительные полосы
- •2.1.3.3. Фоновый звук
- •2.1.4. Добавление внедренных объектов мультимедиа
- •2.1.5. Добавление элементов управления ActiveX
- •2.2. Задание к лабораторной работе №2
- •Лабораторная работа №3 Организация гипертекстовых связей
- •3.1. Методические рекомендации
- •3.1.1. Ссылки на фрагмент документа
- •3.1.2. Графические ссылки
- •3.1.3. Цвета гиперссылок
- •3.1.4.1. Настройка эффектов перехода Web-страницы
- •3.2. Задание к лабораторной работе №3
- •4.1.2. Текст заранее заданного формата (преформатированный текст)
- •Смещение текста
- •4.1.4. Воспроизведение видео в Internet Explorer
- •4.1.5. Бегущая строка
- •4.1.6. Организация возвратов
- •4.1.7. Списки определений (словарные списки)
- •4.2. Задание к лабораторной работе №4
- •Определение структуры и цветовое оформление таблиц
- •5.1.2. Выравнивание в таблицах
- •5.1.3. Составные ячейки
- •6.1.2. Плавающие фреймы
- •6.1.2. Изображения-карты
- •6.1.3. Интерактивные элементы – Roll Over (обработчик событий MouseOver)
- •6.2. Задание к лабораторной работе №6
- •7.1.2. Элементы управления формы
- •7.1.2.1 Поля ввода
- •7.1.2.2. Текстовые области
- •7.1.2.3. Переключатели
- •7.1.2.4. Флажки
- •7.1.2.5. Раскрывающиеся списки
- •7.1.3. Встроенные фильтры ie
- •Фильтр glow()
- •Расширенный язык разметки гипертекста
- •Библиографический список
- •Оглавление
1.2.9.6. Контекстные селекторы
Можно написать стилевое правило, которое будет работать только при определенной комбинации вложенности тегов.
Допустим, мы создали таблицу стилей, согласно которой все заголовки первого уровня на странице отображаются красным цветом на сером фоне, все абзацы – зеленым цветом на желтом фоне, а все выделенные посредством тега <em> слова внутри абзацев – черным цветом на серебристом фоне. Код таблицы стилей при этом выглядит так:
h1 {color: red;
background-color: gray;}
p {
color: green;
background-color: yellow;
}
em {
color: black;
background-color: silver;}
Предположим, мы хотим также выделить какие-то слова в заголовке посредством того же тега <em>, но нас не устраивает появление черного цвета текста на серебристом фоне в заголовке. Мы хотим выделить слова в заголовке бордовым цветом на сером фоне. Для этого существуют контекстные селекторы. Запись правила, которое мы для этого добавим в таблицу стилей, будет выглядеть так:
h1 em {
color: #CC0000;
background-color: gray;
}
А вот пример кода страницы с использованием этого контекстного селектора:
<html>
<head>
...
<style>
h1 {color: red;
background-color: gray; }
p {color: green;
background-color: yellow;}
em {color: black;
background-color: silver;}
h1 em {color: #CC0000; /*Бордовый цвет символов */
background-color: gray;}
</style>
</head>
<body>
<h1>Это - заголовок первого уровня с <em>выделенным</em>
словом</h1>
<p>А это - обычный абзац с <em>выделенными словами</em>
</p>
</body>
</html>
В этом примере контекстным селектором является описанная в таблице CSS последовательность символических имен тегов h1 em {….}. Обратите внимание на то, что в стилевом селекторе между символическими именами тегов h1 и em отсутствует запятая. Это и есть признак контекстного селектора. Если же запись h3, em{color:blue} содержит запятую, то синий цвет приобретут как теги h3, так и теги em, то есть, запятая определяет одинаковые стили для группы тегов.
Контекстные и групповые селекторы можно комбинировать. Так запись
h3 em, h2 i{color:blue} равнозначна двум таким записям:
h3 em {color:blue}
h2 i{color:blue}
Еще одно замечание касается случая, когда по каким-то соображениям (или случайно) одно и то же свойство, например, выравнивание заголовка, или абзаца задано при помощи атрибута тега и одновременно прописано в правиле CSS. При этом не имеет значения как эти правила описаны: встроенные стили, с помощью внутренней (внедренной) или внешней таблицы CSS, например, имеется такая запись: <h2 align=”center” klass=”one”>Это заголовок 2-го уровня !</h2>. При этом свойству text-align селектора .one присвоено значение right. В общем случае именно это значение и будет приоритетным, т.е. заголовок будет выровнен по правому краю блока заголовка. Чтобы сделать приоритетным значение атрибута align, надо свойству text-align присвоить значение inherit (наследовать), или вообще удалить это свойство из набора свойств соответствующего стиля.
В заключении рассмотрения большого, серьезного и принципиального вопроса о каскадных стилях подчеркнем, что можно одновременно использовать встраиваемые и внедренные стили, различные селекторы, идентификаторы и фильтры, как показано в следующем примере:
<p class="pr2" style="width:120; font:25pt; "> Кафедра Графики </p>.
Здесь в теге <P > используется встраиваемый стиль и стиль, внедренный при помощи селектора CLASS. Последний описывается, как обычно, в головной части HTML-документа (тег <HEAD>) с помощью тега Style, или во внешней таблице стилей (см. ниже).
Рассмотрим еще один пример, в котором одновременно применяются классы, идентификаторы классов и их сочетания.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Идентификаторы</title>
<style type="text/css">
#A, .a {
border: none;
background: #f0f0f0;
color: green;
padding: 5px;}
.b {
border: 1px solid red;
color: red;
padding: 0; }
</style>
</head>
<body>
<p id="A" class="b">Стиль идентификатора</p>
<p class="a b">Стиль классов a и b</p>
<p class="b">Стиль класса b</p>
</body>
</html>
Для первого абзаца устанавливается стиль от идентификатора A и класса b, свойства которых противоречат друг другу. При этом стиль класса будет игнорироваться, так как приоритет идентификатора выше (см. пункт. 9.2) Для второго абзаца стиль задаётся через классы a и b одновременно. Приоритет у классов одинаковый, значит, в случае противоречия будут задействованы те свойства, которые указаны в таблице стилей ниже. К последнему абзацу применяется стиль только от класса b.
Указывая разные классы в атрибуте class тега P, мы можем комбинировать набор стилевых свойств и получить таким образом (для примера) блоки с рамкой, блоки без рамки, со скругленными или прямыми уголками. Это несколько похоже на группирование селекторов, но обладает большей гибкостью и может обеспечить существенную экономию используемых стилей.
