При подготовке статьи были использованы материалы Интернет-Университета Информационных Технологий http://www.intuit.ru/, курс Введение в JavaScript, справочник Клиентский JavaScript.

Другие материалы и статьи

Коротенький курс CSS

Назначение CSS

Каскадные таблицы стилей (CSS Cascading Style Sheets) позволяют расширить возможности форматирования языка HTML. Стили обычно хранятся в отдельных файлах или занимают отдельный блок в HTML разметке, что позволяет существенн сократить объем кода на HTML странице с одной стороны, и в некоторой степени отделить контент от разметки с другой стороны.

Впервые стили появляются в HTML 4.0, а в XHTML они уже вытесняют большинство атрибутов элементов языка разметки. Последняя рекомендуемая W3C спецификация каскадных таблиц стилей - это спецификация CSS2. А рекомендуемый консорциумомом W3C перевод этой спецификации на русский язык, находится по адресу http://alepira.ural.ru/css2/index.htm.

Каскадные таблицы стилей позволяют задать формат блоков текста на HTML странице, их расположение, размер и внешний вид. Таблицы стилей также позволяют управлять всеми параметрами шрифта и его цвета. CSS позволяет создать многослойный документ и управлять слоями.

Каскадные таблицы стилей определяют стиль оформления документа, а называются каскадными потому, что параметры форматирования, заданные с их помощью в элементах-контейнерах каскадно наследуются вложенными в них дочерними элементами.

Способы применения CSS

Таблицы стилей могут встречаться на HTML странице, как атрибут тега, они могут располагаться в голове HTML документа в контейнере <STYLE>, а также таблицы стилей могут быть присоединены к документу с помощью тега <LINK>.

Приоритет использования стилей зависит от их местоположения в HTML документе или относительно него. Подключаются таблицы стилей к HTML документу в следующем порядке:

  1. Стили, используемые браузером по умолчанию.
  2. Стили, хранящиеся во внешней таблице.
  3. Стили, хранящиеся во внутренней таблице стилей в контейнере <STYLE>.
  4. Стили, встроенные в HTML теги (элементы).

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

Синтаксис

селектор {свойство:значение}

Селектором может выступать:

  1. HTML элемент. Такой селектор называется родовым (generic).
  2. Каскад HTML элементов. То есть перечисляется через пробел порядок вложенности элементов разметки. Стиль переопределяется для последнего в перечислении элемента. Такой селектор называется контекстуальным (contextual).
  3. Селектор класса. (Произвольное имя класса с лидирующей точкой)
  4. Селектор идентификатора. (Произвольное имя класса с лидирующей решеткой)

Имя класса или идентификатора должно начинаться с буквы. HTML элементы стили которых переопределяют с помощью селектора класса должны содержать атрибут class="ИмяКласса", а элементы стили которых переопределяют с помощью селектора - идентификатора должны содержать атрибут id="ИмяИдентификатора".
Пример

Файл внешней таблицы стилей, в этом примере, example001.css содержит следующие строки кода:

P {font-family:Arial, sans-serif; color:blue;}

Внешняя и внутренняя таблицы стилей подключаются к HTML документу с помощью следующих тегов, располагающихся в голове документа.

<LINK type="text/css" rel="stylesheet" href="example001.css">
<STYLE>
P {color:red;}
P I {color:#19AD39;font-style:normal;font-weight:bold;}
.newgold {color:#DFAF00;}
#newP {font-weight:bold;}
</STYLE>

HTML код примера выглядит так:

<P>
Так выглядит шрифт, стили которого определены во внешней таблице стилей как P {font-family:Arial, sans-serif;color:blue;}, Но буквы голубого цвета в этом тексте вы не увидите, так как цвет текста переопределен во внутренней таблице стилей P {color:red;}.
<I>
Этот тест вложен в элемент I, который, в свою очередь, является дочерним элементом тега P. Стиль для него определен во внутренней таблице P I {color:#19AD39;font-style:normal;font-weight:bold;}
</I></P>
<DIV><I>
A этот курсив не является дочерним элементом тега P.
</I></DIV>
<P class=newgold>
Этот текст находится в контейнере P class=newgold. Его стиль .newgold {color:#DFAF00;}
</P>
<P id=newP>
Этот текст находится в контейнере P id=newP. Его стиль #newP {font-weight:bold;} плюс ранее определенные стили.
</P>
<DIV>
Можно определить стиль и в самом элементе разметки SPAN style="color:white;background-color:black;"
<SPAN style="color:white;background-color:black;">
Как в этом месте.
</SPAN>
Действие стиля отменяется за пределами контейнера, его использующего.
</DIV>

Блочные и строковые элементы

В описании элементов разметки языка HTML существует понятие строкового (in-line) элемента разметки и блочного (block) элемента разметки. У блочных элементов разметки могут быть определены рамки, размеры. Для блоков могут быть определены: расположение на экране, и даже за его пределами и видимость. Для строковых элементов каскадные таблицы стилей определяют фон, шрифт и его параметры.

Описывать стиль для строчных элементов можно в объявлениях для блочных элементов, но блочные описания не применимы для строковых элементов разметки. Упрощенно можно сказать, что атрибуты описания стиля строкового элемента являются подмножеством атрибутов описания стиля блочного элемента.

Блочные элементы можно вкладывать друг в друга, но они не должны пересекаться. Строковые элементы можно как вкладывать, так и пересекать (согласно DTD и практике старых версий браузеров), но последнее делать не рекомендуется.

Обобщениями блочного и строкового элементов , с точки зрения стилей, являются элементы DIV и SPAN, соответственно.

Свойства строк

Фон

Фон представляет собой область, окружающую отдельные символы текста элемента. В качестве фона вы можете устанавливать либо сплошной цвет, либо рисунок.

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

Жирным указано свойство по умолчанию. Наклонной чертой / разделены взаимоисключающие свойства, а вертикальной чертой - свойства указываемые парами.
СвойствоОписаниеЗначенияПримечания
backgroundСлужит для указания всех параметров фона в одном объявлении  
background-colorЗадает цвет фона элементаcolor / transparentcolor - цвет по названию или в RGB
background-imageЗадает в качестве фона изображениеurl() / noneАдрес изображения записывают в скобках
background-attachmentОпределяет поведение фонового изображения при прокруткеscroll / fixed 
background-positionЗадает начальное положение фонового изображенияtop / center / bottom | left / center / rightУказывают и вертикальное и горизонтальное выравнивание, или горизонтальную и вертикальную координату в процентах или пикселях
background-repeatОпределяет способ размещения фонового изображенияrepeat / repeat-x / repeat-y / no-repeat 

Упражнение: Следующий HTML документ выводит в Internet Explorer таблицу

<HTML><HEAD><STYLE>
   TABLE {background-image:url("dub.gif")}
   TD {background-color:white}
</STYLE></HEAD><BODY>
   <TABLE border="5" cellpadding=5 cellspacing=5><TR>
   <TD>Ячейка таблицы</TD><TD>Ячейка таблицы</TD>
   </TR></TABLE>
</BODY></HTML>
где dub.gif это фоновый рисунок
1. Фоновый рисунок заполняет:
всю таблицу
каждую ячейку
пространство между ячейками
пространство между ячейками и бордюром

1. Фоновый рисунок не будет виден если:
Установить TABLE {background-image:url("dub.gif");background-color:white;}
Удалить строку TD {background-color:white}
Установить <TABLE border="0" cellpadding=0 cellspacing=5>
Установить <TABLE border="0" cellpadding=5 cellspacing=0>

Шрифт

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

Следует отметить, что все многообразие шрифтов, которые могут быть установлены в системе, порождается из нескольких семейств - "serif", "sans-serif", "cursive", "fantasy", "monospace". Если, в качестве значения свойства "font-family" вы выбираете какой нибудь шрифт, не забудьте через запятую указать имя порождающего его семейства. Это необходимо для того, чтобы броузер, в случае отсутствия в системе клиента, выбранного вами шрифта, смог бы самостоятельно подобрать шрифт из выбранного вами семейства.

Жирным указано свойство по умолчанию. Наклонной чертой / разделены взаимоисключающие свойства, а вертикальной чертой - свойства указываемые парами.
СвойствоОписаниеЗначенияПримечания
fontСлужит для указания всех свойств шрифта в одном объявлении  
font-familyПозволяет выбрать шрифт по имени или из семействаназвание шрифта / семействосемейства шрифтов: serif / sans-serif / cursive / fantasy / monospace. Обычно перечисляют через запятую несколько наиболее подходящих шрифтов и в конце указывают их принадлежность к семейству.
font-sizeЗадает размер шрифтаxx-small / x-small / small / medium / large / x-large / xx-large / smaller / larger / % / em /pt / ...Размер шрифта может быть задан в любых допустимых в CSS единицах измерения.
font-size-adjustОпределяет значение аспектаnone / аспектАспект - отношение между высотой буквы "x" нижнего регистра в шрифте и высотой "font-size", числовое значение меньше 1
font-stretchДелает текущее семейство шрифтов более узким или более широкимnormal / wider / narrower / ultra-condensed / extra-condensed / condensed / semi-condensed / semi-expanded / expanded / extra-expanded / ultra-expanded 
font-styleЗадает курсивное или наклонное начертание шрифтаnormal / italic / obliqueЕсли курсив в шрифте не определен, используется наклонное начертание.
font-variantВключает вывод символов капительюnormal / small-capsКапитель - заглавные буквы уменьшенного размера
font-weightОпределяет степень жирности символовnormal / bold / bolder / lighter / 100 / 200 / 300 / 400 / 500 / 600 / 700 / 800 / 900 

Свойства текста

В этом разделе, мы изучим свойства, не меняющие начертание шрифта, но управляющие внешним видом текста. CSS позволяет менять цвет текста, интервал между символами или словами, расстояние между строками и многое другое.

Жирным указано свойство по умолчанию. Наклонной чертой / разделены взаимоисключающие свойства, а вертикальной чертой - свойства допускающие перечисление.
СвойствоОписаниеЗначенияПримечания
colorЗадает цвет текстаЦветЦвет можно задать в любом, допустимом в CSS формате
directionМеняет направление текстаltr / rtlНаправление текста слева направо или справа налево
letter-spacingМеняет интервал между символамиnormal / числоИнтервал можно задавать в любых, допустимых в CSS единицах измерения линейных размеров, допускаются отрицательные значения.
word-spacingУвеличивает или уменьшает интервал между словамиnormal / числоЗначение можно указывать в любых, допустимых в CSS единицах измерения линейных размеров, допускаются отрицательные величины.
white-spaceЗадает способ обращения с пробелами внутри элементаnormal / pre / nowrapОбычное / как в теге PRE / как с тегом NOBR
vertical-alignПозволяет изменить вертикальное выравнивание текстаbaseline / sub / superВыравнивает текст по базовой линии родительского элемента, отображает текст как нижний индекс / как верхний индекс
text-alignВыравнивает текст в элементеLeft / right / center / justifyВлево / вправо / по центру / с обеих сторон
text-decorationДополнительное оформление текстаnone / underline | overline | line-through | blinkОбычный текст / Текст с подчеркиванием / с надчеркиванием / перечеркнутый текст / мигающий текст
text-indentДелает отступ для первой строки текста элементачислоЗначение можно указывать в любых, допустимых в CSS единицах измерения линейных размеров и в процентах.
text-shadowТекст с теньюnone / цвет / числоНе поддерживается IE
text-transformУправляет символами элементаnone / capitalize / uppercase / lowercaseОбычный текст / каждое слово с заглавной буквы / все буквы прописные / все буквы строчные
unicode-bidi.unicode-bidi / normal / embed / bidi-override.
line-heightЗадает межстрочный интервалчислоЗначение можно указывать в любых, допустимых в CSS единицах измерения линейных размеров.

Дополнения

Шрифты в элементах управления

Цвет в CSS

Цвет в каскадных таблицах стилей (в JavaScript или в HTML коде) можно задать для текста, фона страницы или HTML элемента, для рамок и элементов интерфейса браузера. Свойства, описывающие цвет, в CSS используют английское слово color.

color
background-color
border-color

Значения, определяющие цвет в CSS можно указывать с помощью зарезервированных слов или с помощью соотношения компонентов красного, зеленого и синего цвета.

Долю каждой, красной, зеленой и синей компоненты в результирующем цвете указывают с помощью числа от 0 до 255 (в шестнадцатиричной системе исчисления от #00 до #FF) или в процентах. Таким образом можно задать один из 16 миллионов цветов (256*256*256=16777216).

Зададим различными способами цвет текста в HTML элементах:

<I style="color:gold">Текст элемента</I> <--! Определяем цвет с помощью названия цвета-->
<SPAN style="color:rgb(22,80,234)">Текст элемента</SPAN> <--! Определяем цвет в десятичной системе исчисления-->
<B style="color:#00E0FF">Текст элемента<>/B <--! Определяем цвет в шестнадцатиричной системе исчисления-->
<BIG style="color:rgb(10%,70%,95%)">Текст элемента</BIG> <--! Определяем цвет с помощью процентного содержания красной, зеленой и синей компоненты цвета-->

Цвет можно выбрать по различным справочникам и таблицам или, например, с помощью следующей диаграммы:

#FFFFFF
Текст Курсив Жирный текст

Единицы измерения размеров в CSS

Жирным указано свойство по умолчанию. Наклонной чертой / разделены взаимоисключающие значения свойства, а вертикальной чертой - значения свойства допускающие перечисление.
СвойствоОписаниеЗначенияПримечания

Свойства блоков

Рамки

Для описания границ блоков (бордюра) используют следующие свойства:

Жирным указано свойство по умолчанию. Наклонной чертой / разделены взаимоисключающие значения свойства, а вертикальной чертой - значения свойства допускающие перечисление.
СвойствоОписаниеЗначенияПримечания
borderВсе ниже перечисленные свойства границ можно описать в этом свойстве  
border-leftОписывает левую границу блока  
border-rightОписывает правую границу блока  
border-topОписывает верхнюю границу блока  
border-bottomОписывает нижнюю границу блока  
-widthЗадает ширину границы блокаthin / medium / thick / размертонкая граница / средняя / толстая / любые, допустимые в CSS единицы измерения размеров
-colorЗадает цвет границы блокаtransparent / цветпрозрачная граница / цвет задают любым, допустимым в CSS способом
-styleЗадает стиль границы блокаnone / hidden / dotted / dashed / solid / double / groove / ridge / inset / outsetнет бордюра / скрытая граница / точки / штрихи / сплошная линия / двойная линия / с тенью слева и сверху / с тенью справа и снизу / ниша / барельеф

Если вы хотите задать толщину бордюра для правой границы блока <DIV> равной 3 пикселя, необходимо определить стиль следующим образом:

<DIV style="border-right-width:3">Содержимое блока</DIV>

Размеры блоков

Жирным указано свойство по умолчанию. Наклонной чертой / разделены взаимоисключающие значения свойства, а вертикальной чертой - значения свойства допускающие перечисление.
СвойствоОписаниеЗначенияПримечания

Отступы и набивка

Жирным указано свойство по умолчанию. Наклонной чертой / разделены взаимоисключающие значения свойства, а вертикальной чертой - значения свойства допускающие перечисление.
СвойствоОписаниеЗначенияПримечания

Позиционирование

Жирным указано свойство по умолчанию. Наклонной чертой / разделены взаимоисключающие значения свойства, а вертикальной чертой - значения свойства допускающие перечисление.
СвойствоОписаниеЗначенияПримечания
display

Слои

Жирным указано свойство по умолчанию. Наклонной чертой / разделены взаимоисключающие значения свойства, а вертикальной чертой - значения свойства допускающие перечисление.
СвойствоОписаниеЗначенияПримечания
Hosted by uCoz