Основы CSS (на начало урока 10)
Регистрационная метка
Выходим в Интернет (на оглавление книги)
На начало урока 10

05. CSS-конструирование

На этой странице:

Вверх CSS-инструментарий

Ранее были показаны самые простые способы описаний стилевых свойств гипертекстового документа:

  • запись стилевых правил в открывающем теге конкретного элемента при помощи атрибута style;
  • запись стилевых правил в головной части HTML-кода или отдельном стилевом файле для всех элементов с заданным именем тега.

Для конкретного абзаца можно задать, например, выравнивание по ширине:

  

Только этот конкретный абзац будет выровнен по ширине.

Для всех абзацев такое указание нужно помещать внутрь элемента STYLE головной части кода или в отдельный стилевой файл и связывать с именем тега:

  
P {text-align:justify}

Теперь все элементы P будут выравниваться по ширине.

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

Предположим, одни абзацы нужно выравнивать по ширине, а другие по правому краю, как быть?

Можно написать для всех тегов P определение P {text-align:justify} в отдельном CSS-файле, а для каждого “правого” абзаца использовать указание <P style="text-align:right"> внутри открывающих тегов HTML-кода.

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

Ни первый, ни второй вариант не позволяют вынести все стилевые определения из HTML-кода, то есть не позволяют полностью отделить структурную разметку от визуальной.

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

Такой механизм в CSS существует. Он позволяет описывать определение не для тега, а для класса.

Можно, например, написать определения двух классов с именами pj и pr:

  
.pj {text-align:justify}
.pr {text-align:right}

Для связи стилевых классов с элементами используется атрибут class. Для абзацев, которые нужно выравнивать по ширине, теперь нужно записывать <P class=pj>, а для абзацев с ровным правым краем — <P class=pr>.

Подробнее о стилевых классах рассказано в разделе “Классы”.

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

О контекстных определениях рассказывает следующий раздел.

Вверх Контекстные определения

Можно написать стилевое определение, которое будет работать только при определенной комбинации вложенности элементов.

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

  
P EM {color:red}

Посмотрите как это работает на следующем примере.

  
Посмотреть

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

Посмотрите ещё один пример контекстного определения.

  
Посмотреть

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

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

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

Вверх Классы

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

  
.имя
{
 свойство: величина;
 ...
 свойство: величина;
}

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

  
.def
{
  font-size: 130%;
  border: 2px solid red;
  background: #FFFFCC;
  padding: 10px;
}

Сопоставить класс с элементом можно при помощи соответствующего атрибута: <P class=def>. То есть в качестве значения атрибута class указывается имя класса.

Посмотрите, как работает этот код:

  
Посмотреть

Можно образовывать классы с привязкой к именам тегов.

В следующем примере определен класс def, в котором за основу взято определение стиля для элементов P и добавлены новые свойства:

  
Посмотреть

Можно образовывать контекстные определения с привязкой к классу. В следуюшем примере правило color:gray будет работать только для тех элементов LI, которые расположены внутри элемента класса list.

  
Посмотреть

Вверх Элементы DIV и SPAN

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

Разница между DIV и SPAN только в одном — первый элемент является элементом уровня блока, второй — последовательным элементом. Использование элемента SPAN позволяет задавать стилевые свойства даже отдельным словам и буквам.

Следующий пример демонстрирует использование этих элементов.

  
Посмотреть

Вверх Комментарии в языке CSS

Комментарии в языке CSS записываются при помощи конструкции /* Это комментарий CSS */:

  
/* Выделенная область 
   ------------------ */
.def
{
  font-size: 130%;       /* Повышенный размер шрифта    */
  border: 2px solid red; /* Рамка красного цвета        */
  background: #FFFFCC;   /* Жёлтый фон                  */
  padding: 10px;         /* Отступ содержимого от рамки */
}

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

  

На начало урока 10

Азы информатики RU 2000/2007 © А.А.Дуванов

Вверх Оглавление книги Урок 10. Основы CSS Письмо автору Об авторах