Интернет-технологии
Лабораторная работа
Таблицы стилей (CSS)
1. Что такое таблицы стилей
СSS (Cascading Style Sheets - Каскадные Таблицы Стилей) - это спецификация, определяющая набор свойств для описания внешнего вида HTML документов.
Примеры содержатся в каталоге «examples».
Пример 1:
<FONT face=Arial color=red ><P>Текст</P></FONT>
Аналогичного результата можно достигнуть с помощью следующего стилевого правила:
P {color:red; font-family:Arial;} /* Комментарий */
Таблица стилей состоит из стилевых правил. Каждое стилевое правило состоит из двух основных частей: селектора ('Р') и определения ('color:red; font-family:Arial;'). Определение записывается в фигурных скобках {} и содержит одно или несколько свойств, которые разделяются точкой с запятой ‘;’. Свойство состоит из двух частей: имени свойства (или просто свойства) ('color') и значения ('red'), которые разделяются двоеточием.
Селектор предназначен для связи стилевого правила с элементом HTML-документа.
Возможно использование комментариев как в языке Си (/* ... */). Комментарии можно использовать внутри определения, например (P {color:red; /* font-family:Arial; */ }), можно комментировать стилевое правило целиком.
2. Способы включения стилей в документ HTML
Можно выделить три способа включения стилей в документ.
Встроенные стили (in-line стили, встроенные в определенный элемент). Внутренние стили (встроенные в определенный документ). Внешние стили (которые могут использоваться в нескольких документах).Встроенные стили
Использование встроенных стилей принципиально ничем не отличается от использования атрибутов элементов HTML. Встроенный стиль задается для конкретного элемента с помощью атрибута STYLE.
Пример 2.1 (2_1.html):
<P style="color:red; font-family:Arial;">Текст</P>
При таком задании стилей в атрибуте STYLE указывается только определение правила без селектора.
Встроенные стили, как правило, используются в том случае, когда необходимо задать определенному элементу стиль, существующий в спецификации CSS но не реализованный в HTML.
Внутренние стили
Внутренние стили задают вид элементов для одного документа. В этом случае используется элемент ‘STYLE’, который размещается в секции HEAD.
Пример 2.2:
(стилевое правило применяется ко всем параграфам в данном документе):
<HEAD>
<STYLE type="text/css">
P {color:red; font-family:Arial;}
</STYLE>
</HEAD>
<BODY>
<P>Текст 1
<P>Текст 2
</BODY>
Синтаксис элемента STYLE (style. txt):
<STYLE type="text/css" media=тип устройства>
стилевые правила
</STYLE>
Оба атрибута являются необязательными, но рекомендуется использовать атрибут “type” со значением "text/css".
тип устройства :=
screen (экран компьютера) |
print (принтер) |
projection (проектор) |
handheld (карманное устройство) |
all (все устройства) и т. д.
Реально используются только screen и print. Таким образом, возможно использование различных стилей для просмотра и печати документа.
Элемент ‘STYLE’ может встречаться несколько раз в документе.
Внешние стили
Внешние стили используются для придания нескольким документам единого стиля. Внешняя таблица стилей хранится в отдельном файле, как правило, с расширением. CSS Данный подход используется наиболее часто и позволяет создать сайт, выдержанный в едином стиле.
Пример:
Файл style. css :
P {color:red; font-family:Arial;}
Документ 2_3.html:
<HEAD>
<LINK href="style. css" rel="stylesheet" type="text/css">
</HEAD>
<BODY>
<P>Текст 1
<P>Текст 2
</BODY>
С помощью элемента LINK осуществляется привязка к внешней таблице стилей. Элемент LINK может встречаться несколько раз.
Синтаксис элемента LINK (link. txt):
<LINK rel="stylesheet" type="text/css" href=URI таблицы стилей media=тип устройства>
Атрибут media является необязательным.
3. Классы
Для гибкости работы со стилями в HTML существует атрибут 'CLASS'.
Пример CSS:
P. gray_p {color: gray;}
...
Пример HTML:
<P class=gray_p>Серый текст</P>
Стилевое правило будет применяться ко всем элементам P, у которых определен атрибут class=gray_p.
В качестве разделителя имени элемента и имени класса в стилевом правиле используется точка.
Можно определить класс для различных типов элементов. При этом в селекторе опускается имя элемента.
Пример CSS:
.green {color:green;}
...
Пример HTML:
<P class=green>Текст</P>
<H3 class=green>Заголовок</H3>
4. Использование стилей
4.1. Шкала измерения числовых величин
Используется для длин, отступов, размеров шрифта и других числовых величин.
Абсолютные значения:
- in: inches (дюймы) — 1in = 2.54cm. cm: centimeters (сантиметры). mm: millimeters (миллиметры). pt: points (пункты) — 1 pt = 1/72nd of 1in. pc: picas (пики) — 1pc = 12pt. px: pixel units (точки, пикселы) — 1px = 0.75pt.
Примеры:
p { font-size: 0.5in }
p { font-size: 14pt }
p { font-size: 20px }
Относительные значения:
- em: значение свойства 'font-size' текущего шрифта. ex: ширина буквы 'x' текущего шрифта.
Примеры:
h1 { font-size: 1.2em } – размер шрифта для заголовка 1 уровня должен быть на 20% больше, чем стандартный размер шрифта для заголовка 1 уровня.
h1 { font-size: 1.2ex } – размер шрифта для заголовка 1 уровня должен быть на 20% больше, чем ширина буквы 'x' текущего шрифта
4.2. Границы и отступы

Рис. 1. Расположение внешних отступов (margin), границ (border) и внутренних отступов (padding).
Пример задания внешних отступов:
p {
margin-top: 1em;
margin-right: 2em;
margin-bottom: 3em;
margin-left: 2em; }
Для объединения значений свойств может быть использовано свойство margin:
margin: верхнее правое нижнее левое (обход сверху по часовой стрелке).
p { margin: 1em 2em 3em 2em } /* аналогично предыдущему примеру */
p { margin: 2em } /* все границы 2em */
p { margin: 1em 2em } /* верхняя и нижняя = 1em, правая и левая = 2em */
Внутренние отступы задаются аналогично, вместо «margin» используется «padding».
Ширина границы задается с помощью свойств 'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width'.
Каждое свойство может принимать следующие значения:
- thin (тонкая граница) medium (средняя граница) thick (толстая граница) числовое значение
Свойство 'border-width' позволяет задавать 4 значения: верхнее правое нижнее левое.
Пример:
p { border-width: thin thick medium 20pt }
Цвет границы задается с помощью свойств 'border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color'. Свойство 'border-color' позволяет задавать 4 значения.
Тип границы задается с помощью свойств 'border-top-style', 'border-right-style', 'border-bottom-style', 'border-left-style'.
Каждое свойство может принимать следующие значения:
- none – Граница отсутствует. В результате вычисленное значение свойства 'border-width' будет равно нулю. dotted – Граница отображается пунктирной линией. dashed – Граница отображается штрих-пунктирной линией. solid – Граница отображается сплошной линией. double – Граница отображается двумя непрерывными линиями. Сумма значений ширины двух линий и расстояния между ними равна значению свойства 'border-width'. groove – Граница отображается вдавленной линией. ridge – Противоположно значению 'groove': граница отображается выпуклой линией. inset – Весь блок выглядит как бы вдавленным. outset – Противоположно значению 'inset': весь блок выглядит как бы выпуклым.
Свойство 'border-style' позволяет задавать 4 значения.
Свойства 'border-top', 'border-bottom', 'border-right', 'border-left' позволяют задавать параметры границы в виде border-top: толщина тип цвет;
Свойство 'border' позволяет задавать толщину, тип и цвет для всех границ.
Пример:
p { border: thick ridge green; }
Пример использования отступов и границ: borders. html
4.3. Позиционирование
Свойство 'display' отвечает за отображение элемента.
Основные значения:
- block – создание блочного элемента. inline – создание встроенного (строкового) блока. none – не отображается. Часто используется совместно с JavaScript для скрытия элементов.
Пример: display. html
Свойство 'position' отвечает за схему позиционирования элемента.
Основные значения:
- static – Данный блок является обычным блоком, позиционируемым в соответствии с нормальным потоком (нормальным следованием элементов друг за другом). Свойства 'left' и 'top' не применяются. relative – Положение блока рассчитывается в соответствии с нормальным потоком (оно называется нормальным положением). Затем блок смещается относительно своего нормального положения, применяются свойства 'left' и 'top'. Когда для расположения блока B используется модель относительного позиционирования, тогда положение следующего блока рассчитывается так, как будто блок B не был смещен. absolute – Положение блока (возможно и размер) указывается с помощью свойств 'left', 'right', 'top' и 'bottom'. Они указывают величину смещения относительно контейнера блока. Абсолютно позиционируемые блоки изымаются из нормального потока, они не влияют на размещение последующих элементов. fixed – Положение блока рассчитывается в соответствии с моделью абсолютного позиционирования, а затем он фиксируется относительно некоторого объекта.
Свойства 'top', 'right', 'bottom', 'left' задают смещение элемента при позиционировании.
Пример относительного позиционирования: position_static_relative. html
Свойство 'z-index=число' задает порядок перекрывания элементов при абсолютном позиционировании. Элементы с большим значением находятся ближе, чем элементы с меньшим значением.
Пример абсолютного позиционирования: position_absolute. html
Фиксированное позиционирование похоже на абсолютное. Но фиксированные блоки не перемещаются при прокрутке документа, а абсолютные перемещаются. С помощью фиксированного позиционирования можно создавать эффекты, похожие на фреймы.
Пример фиксированного позиционирования: position_fixed. html
4.4. Перемещаемые объекты
Свойство 'float'. Определяет, будет ли блок перемещен влево, вправо или вообще не будет перемещен. Оно может устанавливаться для элементов, порождающих блоки, не являющиеся абсолютно позиционируемыми. Значения:
- left – Элемент порождает структурный блок, перемещаемый влево. Содержимое выводится вдоль правой стороны блока, начиная с самого верха (за счет свойства 'clear'). Свойство 'display' игнорируется, если ему не присвоено значение 'none'. right – Подобно значению 'left' с той лишь разницей, что содержимое выводится вдоль левой стороны блока, начиная с самого верха. none – Блок не перемещается.
Свойство 'clear'. Определяет, какие стороны блока, порожденного элементом, не могут соседствовать с предшествующим перемещаемым блоком. Значения:
- left – Верхнее поле генерируемого блока увеличивается до тех пор, пока верхний сегмент края его границы не окажется ниже нижнего сегмента внешнего края любого левостороннего перемещаемого блока, который был сгенерирован в исходном документе предыдущим элементом. right – Верхнее поле генерируемого блока увеличивается до тех пор, пока верхний сегмент края его границы не окажется ниже нижнего сегмента внешнего края любого правостороннего перемещаемого блока, который был сгенерирован в исходном документе предыдущим элементом. both – Генерируемый блок помещается ниже всех перемещаемых блоков, которые были сгенерированы в исходном документе предыдущими элементами. none – Никаких ограничений на положение блока относительно перемещаемых объектов не накладывается.
Пример: float. html
Примеры блочной верстки в CoffeeCup (File / New From Theme/Layout)
4.5. Работа с курсорами
Пример: cursor. html
4.6. Загрузка стиля из файла
Пример: load. html
5. Версии стандарта
Версия CSS 1 (level 1) утверждена как стандарт в 1996 году.
Версия CSS 2 утверждена как стандарт в 1998 году.
Версия CSS 2.1 утверждена как черновой стандарт в 2009 году. Является актуальной версией.
Версия CSS 3 разрабатывается. Должна состоять из отдельных модулей, каждый модуль является отдельной рекомендацией. Некоторые модули утверждены как черновые стандарты и частично поддерживаются.
6. Дополнительные материалы
Каталог «standard» содержит стандарты CSS 1 (русский перевод), 2 (частичный русский перевод), и 2.1 (английский). В стандарте 2: selector. html – использование селекторов, cascade. html – алгоритм каскадирования.
Каталог «menu_css» – статья с примером реализации меню только с помощью стилей, без сценариев JavaScript.
Каталог «examples_css3» – статья с примером использования некоторых свойств CSS3.
7. Задание
Создайте несколько html документов. Задайте следующие параметры для всех - цвет фона при помощи 3 различных способов определения стилей.- размер шрифта
- цвет шрифта
- семейство шрифта (например, Arial) Проверьте работоспособность.


