Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 9.doc
Скачиваний:
6
Добавлен:
23.11.2019
Размер:
1.06 Mб
Скачать

Лабораторная работа 3. Основы построения CSS

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

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

Пусть для тега <Р> задан стиль:

P

{ color: red; font-size:14pt;

font-family: Arial, sans-serif; }

Тогда содержимое тега <ЕМ>, помещенного внутрь абзаца, будет также выве­дено на экран рубленым шрифтом красного цвета размером в 14 пунктов (рис. 3.1):

<Р>

Стилевые определения обладают свойством <ЕМ>наследования</ЕМ>.

Рис. 3.1. Наследование стиля

Если нужно, например, добавить для тега <ЕМ> разрядку текста, то такая модификация задается дополнительно (пример 3.1, рис. 3.2).

Пример 3.1

<HTML>

<HEAD>

<META http-equiv="Content-Type"

content="text/html; charset=windows-1251">

<TITLE>Дополнительное стилевое указание</TITLE>

<STYLE type="text/css">

<!--

P

{color: red;

font-size:14pt;

font-family:Arial,sans-serif; }

-->

</STYLE>

</HEAD>

<BODY bgcolor=white text=black>

<P>

Стилевые определения обладают свойством

<EM style="letter-spacing:6рt:">наследования</EM>.

</BODY>

</HTML>

Рис. 3.2. Дополнительное стилевое указание

Как видите, содержимое тега <ЕМ> выводится так же, как и содержимое тега <Р>, внутри которого он содержится (рубленым шрифтом в 14 пунктов красного цвета), но благодаря дополнительному определению style="letter-spacing: 6pt" между буквами появляются добавочные про­межутки в 6 пунктов.

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

Пример 3.2

<HEAD>

<META http-equiv="Content-Type"

content="text/html">

<TITLE>Переопределение стилевых свойств</TITLE>

<STYLE type="text/css">

<!--

P

{color: red;

font-size:14pt;

font-family:Arial,sans-serif;

}

-->

</STYLE>

</HEAD>

<BODY bgcolor=white text=black>

<P>

Стилевые определения обладают свойством

<EM style="letter-spacing: 6рt; color: blue">наследования</EM>.

</BODY>

</HTML>

Теперь слово «наследования» будет показано синим цветом.

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

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

Пример 3.3

<HTML>

<HEAD>

<META http-equiv="Content-Type"

content="text/html">

<TITLE> Контекстный селектор </TITLE>

<STYLE type="text/css">

<!--

H3 EM {color: blue}

-->

</STYLE>

</HEAD>

<BODY bgcolor=white text=black>

<H3> Контекстный <EM>селектор</EM></H3>

<P>Контекстный <EM>селектор</EM></P>

</BODY>

</HTML>

Слово «селектор» выводится на экран синим цветом только в первой строке внутри тега <Н3>), а во второй строке (внутри тега <р>) — черным. Обратите внимание, что в стилевом определении отсутствует запятая. Это и есть признак контекстного определения. Если записать Н3, ем { color: blue }, то синий цвет приобретут как теги <Н3>, так и теги <ЕМ>, т. е. запятая определяет одинаковые стили для группы тегов.

Контекстные и групповые определения можно комбинировать. Запись

H3 ЕМ, Н2 I { color: blue }

равнозначна двум таким записям:

H3 ЕМ { color: blue }

H2 I { color: blue }

Классы

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

.имя

{ характеристика: величина;

характеристика: величина; }

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

.def

{ color: red;

font-size: 16pt;

font-family: Geneva, Helvetica, sans-serif;

border: solid 0.2cm blue }

Замечание

Строка border: solid 0.2cm blue демонстрирует запись в одном стилевом указании нескольких параметров разного назначения (здесь: стиль, толщина рамки и ее цвет). Такую интеграцию допускают специальные обобщающие сти­левые свойства (см. Приложение 1), к которым относится border.

Сопоставляют стилевой класс с тегом при помощи атрибута class:

<Р class=def>текст</P>

Посмотрите, как работает этот код (рис. 3.3, пример 3.4).

Рис. 3.3. Определение класса

Пример 3.4

<HTML>

<HEAD>

<META http-equiv="Content-Type" content="text/html">

<TITLE>Определение класса</TITLE>

<STYLE type="text/css">

<!--

.def

{ font-family: Helvetica,sans-serif;

font-size: 14pt;

border: solid 4pt red;

padding: 6pt;

margin-left: 5%; margin-right: 5%; }

-->

</STYLE>

</HEAD>

<BODY bgcolor=white text=black>

<H2>Классы</H2>

<P class=def>

Клacc — стилевое определение без привязки к тегу.

<P>

Вместо указания тега в определении записывается имя класса.

<P class=def>

Перед именем класса ставится точка.

</BODY>

</HTML>

Можно образовывать классы на основе существующих стилевых определе­ний. В следующем примере определен класс def — за основу взято определение стиля для тега <р> и добавлены новые свойства (пример 3.5, рис. 3.4).

Рис. 3.4. Определение класса на базе существующего стиля

Пример 3.5

<HTML>

<HEAD>

<META http-equiv="Content-Type" content="text/html">

<TITLE>Определение класса</TITLE>

<STYLE type="text/css">

<!--

P { font-family: Helvetica,sans-serif; }

P.def { text-align: justify; background:#CFB597; font-size: 14pt;

border: solid 4pt red; padding: 6pt; margin-left: 5%; margin-right: 5%; }

-->

</STYLE>

</HEAD>

<BODY bgcolor=white text=black>

<H2>Классы(обычный заголовок)</H2>

<P>

Этот абзац использует стилевое определение для тега Р (рубленый шрифт).

<P class=def>

Этот абзац использует стиль производного класса “def” (в определение

стиля для тега Р добавлено: красная рамка, поля, цвет фона, выравнивание слева

и справа, повышенный размер шрифта).

</BODY>

</HTML>

Теги <DIV> и <SPAN>

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

Посмотрите примеры использования этих тегов (рис. 3.5, 3.6 и примеры 3.6, 3.7).

Пример 3.6 на <div>

<HTML>

<HEAD>

<META http-equiv="Content-Type"

content="text/html">

<TITLE>Использование тега DIV</TITLE>

<STYLE type="text/css">

<!--

.area1 {color:red; font-weight:bolder; font-size:40pt; background:aqua;}

.area2 {color:maroon; background:#CFB597; }

.area3 {color:blue;background:#C0C0C0; }

-->

</STYLE>

</HEAD>

<BODY bgcolor=white text=black>

<DIV class=area1><IMG src=vopros.gif>Где</DIV>

<DIV сlass=аrеа2>начало того конца,</DIV>

<DIV class=area3>которым оканчивается начало?</DIV>

</BODY>

</HTML>

Рис. 3.5. Использование тега <DIV>

Пример 3.7 на <span>

<HTML>

<HEAD>

<META http-equiv="Content-Type"

content="text/html; charset=windows-1251">

<TITLE> Использование тега SPAN </TITLE>

<STYLE type="text/css">

<!--

.area1 {color:red; font-weight:bolder; font-size:40pt; background:aqua;}

.area2 {color:maroon; background:#CFB597;padding: 6pt; }

.area3 {color:blue;background:#C0C0C0;padding: 6pt; }

-->

</STYLE>

</HEAD>

<BODY bgcolor=white text=black>

<SPAN class=area1><IMG src=vopros.gif>Где</SPAN>

<SPAN class=area2>начало того конца,</SPAN>

<SPAN class=area3>которым оканчивается начало?</SPAN>

</BODY>

</HTML>

Рис. 3.6. Использование тега <SPAN>