DHTML-конструирование
Урок 3. Основы построения CSS

Наследование

HTML-код имеет иерархическую структуру. Весь документ кодируется внутри тегов <BODY>...</BODY>. Внутри абзаца P могут содержаться элементы размеченные тегами <STRONG>...</STRONG> и так далее.

Наследование стилей означает, что, если определен какой-то стиль для тега BODY, то этот стиль будет относиться ко всем тегам документа, без повторных определений. Соответственно, если задан стиль для некоторого тега, то все теги, расположенные внутри него в HTML-программе, будут этим стилем обладать также.

Пусть для тега P задан стиль:


P { color: red;
    font-size:14pt;
    font-family:Arial,sans-serif;
  }

Тогда содержимое тега EM, помещенного внутрь абзаца, будет также выведено на экран красным рубленым шрифтом размером в 14 пунктов:

Если нужно, например, добавить для тега EM разрядку текста, то такую модификацию нужно задать дополнительно:

Как видите, содержимое тега EM выводится так же, как и содержимое тега P, внутри которого он содержится (красным рубленым шрифтом в 14 пунктов), но благодаря дополнительному определению style="letter-spacing:6pt", между буквами появляются дополнительные промежутки в 6 пунктов.

Внутри тега-потомка можно не только ввести дополнительные стилевые определения, но и переопределить стилевые свойства родителя:

Контекстные селекторы

Можно написать стилевое определение, которое будет работать только при определенной комбинации вложенности тегов. Например, можно установить цвет EM синим только для случая, если этот тег расположен внутри тега H3:

Вы видите, что EM внутри H3 записывается синим, а внутри P — черным. Обратите внимание, что в стилевом определении отсутствует запятая. Это и есть признак контекстного определения. Если же записать H3, EM { color: blue }, то синий цвет приобретут как теги H3, так и теги EM. То есть, запятая определяет одинаковые стили для группы тегов.

Контекстные и групповые определения можно комбинировать. Запись H3 EM, H2 I{ color: blue } равнозначна двум таким записям:


H3 EM{ color: blue }
H2 I{ color: blue }

Классы

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

.имя
{
 характеристика: величина;
 ...
 характеристика: величина;
}

Иными словами, определение записывается, как обычно, но вместо указаний на теги размещается конструкция .имя. Например, можно определить стилевой класс с именем def:


.def
{
  color:red;
  font-size: 16pt;
  font-family:Geneva, Helvetica, sans-serif;
  border:solid 0.2cm blue
}

Сопоставлять стилевой класс с тегом можно при помощи атрибута “class”: <P class=def>текст. Посмотрите, как работает эта программа:

Можно образовывать классы на основе существующих стилевых определений. Посмотрите, как в следующем примере определен класс “def” — за основу взято определение стиля для тега P и добавлены новые свойства:

Теги DIV и SPAN

Эти теги играют особую роль для CSS. Они позволяют выделять в документе отдельные области, задавая для них специфические свойства. Все, что нужно сделать для этого — это поместить теги, принадлежащие конструируемой области внутрь <DIV>...</DIV> или <SPAN>...</SPAN>. Разница между DIV и SPAN только в одном: после блока DIV браузер переходит на новую строку, а после блока SPAN — нет. Использование тега SPAN позволяет тем самым, задавать стилевые свойства даже отдельным словам и буквам.

Посмотрите примеры с иллюстрациями использования этих тегов.

Абсолютное позиционирование

При помощи CSS можно отображать элементы на экране, используя реальные координаты, отсчитываемые от левого верхнего угла окна браузера. Такую возможность предоставляет стилевое свойство position со значением absolute. Сами координаты задаются при помощи свойств left (горизонтальная координата) и top (вертикальная координата).

Применение этих свойств иллюстрирует следующий пример.

Как видите, браузер разместил три, заданные тегами DIV области, в указанные координаты. При этом области перекрывают друг друга. Ближе к пользователю получается та область, которая следует в HTML-коде последней. Если переставить порядок следования тегов DIV в программе, то и порядок наложения областей друг на друга так же изменится. Однако, CSS предоставляет программисту и другой, более гибкий инструмент для управления порядком наложения элементов. Это — z-index.

Z-index

Этот стилевое свойство позволяет указывать, в каком слое (на каком уровне) находится элемент на экране. Номер оcновного уровня (на который выводятся обычные элементы без стилевых указаний) равен нулю. Следовательно, элементы с отрицательным z-index расположены ниже (дальше), с положительным — выше (ближе) основного экранного слоя. Если элементы имеют одинаковый z-index, то они расположены в одном слое. В противном случае, “ближе” к нам расположен слой, имеющий больший z-index.

Каскадирование

Weб-программист, благодаря CSS, получает в свои руки гибкий инструмент для определения своих собственных стилей представления информации на экране компьютера. Однако, важно не запутаться в том, как созданные стили будут взаимодействовать друг с другом, с атрибутами тегов (они тоже определяют стиль!) и со стилями самого браузера (теми стилями, которыми браузер показывает документ по-умолчанию).

Как было рассказано в предыдущем уроке, программист может использовать в HTML-документе три типа стилей:

На протяжении одного документа могут применяться все описанные выше три стилевых механизма. Добавим к этому стили, задаваемые обычными атрибутами тегов и стиль “по-умолчанию” самого браузера. Как это все взаимодействует, какому стилю отдает предпочтение браузер при построении документа на экране компьютера?

Правила, которым должен следовать “послушный” браузер, называются каскадными. Это означает, что для браузера самыми главными являются встроенные стили, затем по убыванию старшинства, внедренный и связанный. Как следует из опытов предыдущего урока, внедренный и связанные стили совершенно равнозначны для браузера. Он всегда следует последнему по-порядку указанию.

Самым младшим в стилевой иерархии оказывается стиль “по умолчанию”. Его браузер использует тогда, когда нет никаких стилевых указаний. В понятие “каскадирование” входит и механизм наследственности, о котором говорилось ранее. Это означает, что, если у потомка нет своего стиля, к нему применяется стиль родителя. Что касается, стилей, задаваемых обычными атрибутами тегов, то они работают по общему каскадному правилу:

Это будет показано синим.

Это будет показано синим, а это будет показано красным.

 

Задания

При подготовке заданий, представленных ниже, использовались задачи к лекциям Е.П.Лилитко “Программирование для Internet”. Для построения решений рекомендуется использовать справочник свойств CSS.

  1. Сделайте страницу, в которой все абзацы выровнены по левому и правому краю, и имеют красную строку в один сантиметр.

  2. Для текстов заголовков и абзацев используйте рубленый шрифт. Сделайте новый стиль P.def. Абзацы этого стиля должны выравниваться по левому и правому краю, иметь отступ слева 2 см и справа 1 см. Расположите на странице обычные абзацы вместе с абзацами P.def.

  3. Сделайте стили для написания старой и новой цены товара. Старая цена — серого цвета, перечеркнутая. Новая цена — красного цвета, на 50% более крупного кегля, чем остальной текст. Напишите список товаров со старыми и новыми ценами.

  4. Определите два стиля. В первом стиле: Во втором стиле: Подготовьте документ с двумя разделами. Первый раздел определяется первым стилем, второй — вторым. Второй раздел должен быть вложен в первый, чтобы было видно наследование. Какие стилевые указания наследуются во втором разделе, а какие нет?

  5. Сделайте стиль .nb такой, чтобы элемент заключался в рамку (бордюр), занимал (по ширине) половину окна браузера (независимо от его размера), был расположен у левого края, а остальные элементы страницы обтекали бы этот элемент справа.

  6. Подготовьте стиль для абзаца, у которого слева и справа проводится вертикальная черта (на всю высоту абзаца).

  7. Подготовьте стиль абзаца “подложка” (.ground) и стиль “надпись” (.poster). Используя созданные стили, создайте страницу с надписью поверх подложки. Подложка пишется очень крупными буквами мягкого светло-серого цвета. Надпись пишется коричневыми буквами обычного размера.

  8. Используя стили, сделайте страницу, в которой текст выводится в две колонки (как в газете). Таблицы при этом не используются.

  9. Постройте на экране две области с линейками прокрутки и поместите в них информационные элементы.

  10. Используя свойство z-index, постройте на экране несколько перекрывающих друг друга областей.

DHTML-конструирование RU 2000/2001 © А.А.Дуванов

оглавление урок 2 урок 4 письмо автору об авторах