Основы работы с CSS

         

Комментарии CSS


Для пояснения кода и для последующего его редактирования используются комментарии, которые игнорируются браузерами. Комментарий CSS начинается символом "/*" и заканчивается символом "*/", как в примере ниже:

/* Первый комментарий. */ table { /* Второй комментарий. */ margin-left: 10pt;; font-family: "sans serif"; /* Третий комментарий. */ border-style:outset }



Несколько таблиц стилей


В случае объединения или использования нескольких таблиц стилей могут возникнуть ситуации, когда некоторые свойства заданы для одного и того же селектора в разных таблицах стилей; тогда будут использованы значения из более конкретной таблицы стилей.

Например, внешняя таблица стилей имеет следующие свойства для селектора p:

p { font-family: "sans serif"; margin-left: 10pt; font-style: italic; font-weight: bold }

А внутренняя таблица стилей имеет для селектора p следующие свойства:

p { margin-left: 20pt; font-style: normal; font-weight: bolder }

Итак, при соединении внешней таблицы стилей с внутренней для селектора p будут определены следующие свойства:

font-family: "sans serif"; margin-left: 20pt; font-style: normal; font-weight: bolder

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



Подключение таблицы стилей


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

    Подключение внешней таблицы стилей

    Этот способ обычно применяется в ситуациях, когда один стиль определяется для множества страниц. Если необходимо быстро поменять дизайн Web-сайта этот способ идельно подходит – редактируется только один файл с таблицей стилей. Для подключения внешней таблицы стилей предназначен тег <link>, который размещается в разделе заголовка:

    <head> <link rel="stylesheet" type="text/css" href="first.css" /> </head>

    Данный код указывает браузеру на то, что определение стиля хранятся в файле first.css. Последний, в свою очередь, выполнит форматирование документа согласно с этим определением стиля.

    Некоторые замечания:

    внешнюю таблицу стилей можно создать в любом текстовом редакторе;файл с внешней таблицей стилей не должен содержать никаких тегов html;файл с внешней таблицей стилей необходимо сохранить с расширением .css.

Пример:

ul {margin-left: 10pt} li {font-family: arial} body {background-color: blue}

Для корректности отображения браузерами таблиц стилей необходимо исключить пробелы между значением свойства и единицами измерения, т.к. это будет работать правильно только в IE6, но не в Mozilla/Firefox или Netscape.

Пример с пробелом — "margin-left: 20 px";



пример без пробела — "margin-left: 20px".

Подключение внутренней таблицы стилей

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

<head> <style type="text/css"> li {font-family: arial} p {font-size: 25%} h1 {margin-right: 10pt} </style> </head>

В соответствии с определениями стиля браузер форматирует документ. Однако если он встретит незнакомые теги, то проигнорирует их. Например, старый браузер, который не поддерживает стили, проигнорирует тег <style>, но содержимое последнего будет выведено на странице. Чтобы этого не произошло, необходимо скрыть описание стиля в элементе комментария HTML:

<head> <style type="text/css"> <!-- body {background-color: green} table {border-style: dotted} --> </style> </head>

Встроенные стили

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

Для определения встроенных стилей в соответствующем теге применяют атрибут style, который может содержать любое свойство CSS.

Пример:

<body style="background-color: blue" > <h1 style="color: yellow" >Заголовок H1</h1> </body>

В примере показано, как задать цвет фона документа и цвет заголовка h1.



Примеры использования CSS


Рассмотрим несколько примеров использования CSS:

    Технология CSS позволяет связываться с внешней таблицей стилей. Для этого в файле HTML применяют тег <link>:

    <html>

    <head> <link rel="stylesheet" type="text/css" href="http://www.intuit.ru/image/style.css"> </head>

    <body>

    <ol><!—Список имеет внешний отступ в 10 пунктов --> <li>для этого элемента списка будет задан шрифт "arial"</li> <li>для этого элемента списка будет задан шрифт "arial"</li> </ol>

    <ul><!—Список имеет внешний отступ в 20 пунктов --> <li>для этого элемента списка будет задан шрифт "arial"</li> <li>для этого элемента списка будет задан шрифт "arial"</li> </ul>

    </body> </html>

    Внешний файл содержит следующее описание стилей (style.css):

    ol {margin-left: 10pt} ul {margin-right: 20pt} li {font-family: arial}

    Следующий файл HTML связывается с внешней таблицей стилей с помощью тега <link>:

    <html> <head> <link rel="stylesheet" type="text/css" href="http://www.intuit.ru/image/style2.css">: </head>

    <body>

    <table> <tr> <td>Ячейка 1</td> <td>Ячейка 2</td> </tr> </table>

    <a href="http://www.intuit.ru">Здесь размещена ссылка</a>

    </body> </html>

    Внешний файл содержит следующее описание стилей (style2.css):

    body {background-color: #FFFFFF)} table {margin-left: 10pt;} td {font-size:10pt; color: blue} a:link {color:blue} a:visited {color:brown} a:hover {color:lime} a:active {color:gray}.



Селектор идентификатора (id)


Стили элементов HTML можно определить также с помощью селектора идентификатора, который определяется символом #.

Следующее правило стиля будет применимо к элементу, который имеет атрибут id со значением "fontsz":

#fontsz{font-size: 50%}

Следующее правило стиля будет применимо к элементу ul, который имеет атрибут id со значением "first":

ul#first { list-style: disc; color: #ffffff }

Для корректности обработки кода браузерами не рекомендуется начинать имя ID с числа, т.к. это не будет работать в Mozilla/Firefox.



Селектор класса (class)


При Web-разработке часто возникает необходимость в задании различных стилей для одного и того же типа элемента HTML. Для решения этой задачи используют селектор класса.

Предположим, что в документе требуется два типа заголовков: более крупный заголовок должен иметь внешний отступ 10 пунктов, а второй — 20 пунктов. Вот как это можно сделать с помощью стилей:

h1.stepleft {margin-left: 10pt} h2.stepright {margin-left: 20pt}

Для применения этих стилей в документе HTML необходимо будет использовать атрибут класс:

<h1 class="stepleft"> Заголовок с внешним отступом 10 пунктов. </h1>

<h2 class="stepright"> Заголовок с внешним отступом 20 пунктов. </h2>

В тоже время не допускается следующее определение атрибута class:

< h1 class="stepleft" h2 class="stepright">,

т.е. можно определить только один атрибут class

Можно также опустить имя тега в селекторе, чтобы определить стиль, который будет использоваться всеми элементами HTML, имеющими определенный class.

.left {margin-left: 40pt}

В следующем примере все элементы HTML, имеющие class="left", будут иметь внешний отступ, равный 40 пунктам.

В следующем коде элементы table и p имеют class="left". Это означает, что оба элемента будут следовать правилам в селекторе ".left":

<table class="left"> Эта таблица будет иметь внешний отступ, равный 40 пунктам. </table>

<p class="left"> Этот параграф будет иметь внешний отступ, равный 40 пунктам. </p>

Для корректности обработки кода браузерами не рекомендуется начинать имя класса с числа, т.к. это не будет работать в Mozilla/Firefox.



Синтаксис CSS


Синтаксис CSS состоит из трех частей: селектора, свойства и значения:
селектор {свойство: значение}
Селектор — элемент/тег HTML, который необходимо определить. Свойство — атрибут, который желательно изменить. Каждое свойство может принимать значение. Существует ряд правил и рекомендаций, которые необходимо запомнить.
    Свойство и значение разделяются двоеточием и помещаются внутри фигурных скобок: p {font-size: 75%}Если значение состоит из нескольких слов, то необходимо поместить значение в кавычки: h1 {font-family: "lucida calligraphy"}Если требуется определить более одного свойства, то необходимо разделить свойства точкой с запятой: table { font-family: arial, "sans serif"; border-style: dotted} Чтобы определения стилей было удобно читать, можно каждое свойство писать на отдельной строке:
    h2 { font-family: arial; margin-right: 20pt; color:#ffffff }При определении правил допускается группировка селекторов, при этом в качестве разделителя селекторов используется запятая. В следующем примере в группу были объединены все элементы заголовков. Все элементы заголовков будут выведены шрифтом sans serif:
    p,table,li { font-family: "sans serif"; }