Информация на сайте размещена под защитой Creative Commons License  

 

                                       Click here to back to the main

 
   

CSS1 - праздник освобожденного труда.
Автор: О. Нурниязов (22.04.2002)     http://d-x-d.narod.ru      e-mail:d-x-d@narod.ru


CSS1 представляет собой описание правил, задающих параметры представления отдельных элементов на языке HTML. В предыдущих версиях HTML для придания элементу нужного облика приходилось каждый раз для каждого элемента перечислять весь список атрибутов, его характеризующих. Таблицы стилей, помимо более широких возможностей управления элементами web-документа, позволяют разделить непосредственно содержание документа и информацию о том, как это содержание должно быть представлено на экране. Это в огромной степени облегчает html-верстку web-документов и внесение изменений в описание элементов.
Теперь несколько слов о том, каким образом создаются таблицы стилей, определяющие внешний вид содержания web-документа. Эти описания называются «селекторами» и имеют следующий вид: ТЭГ {атрибут: значение} Например, чтобы текст во всем документе отображался шрифтом Arial, с черными буквами размером в 14 пикселов, достаточно написать:

BODY {color: black; font-size: 14 px; font-family: Arial}

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

H2 {color: red}

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

Вы должны были заметить, что в вышеприведенном примере имеется противоречие. С одной стороны, мы присвоили всему тексту в документе черный цвет, с другой — всем заголовкам присвоен красный цвет. Каким же цветом отображать заголовок? Здесь действует принцип последовательного приоритета, введенный в еще более ранних версиях HTML, т.е. при возникновении конфликтных инструкций преимущество отдается более позднему тэгу. На примере это выглядит так:

это какой-то текст

А это заголовок

и снова текст

При встрече с открывающим тэгом браузер обращается к таблице стилей (о том, как сделать так, чтобы браузер знал, что ему надо обращаться к таблице стилей, мы поговорим позже) и узнает, что весь текст внутри элемента body должен быть черного цвета. Однако, продолжая считывать код, браузер наталкивается на открывающий тэг <H2> и через таблицу стилей узнает, что весь текст внутри элемента H2 должен отображаться красным цветом. Автоматически предыдущая команда теряет свою силу и текст после тэга <H2> окрашивается в красный цвет. Далее появляется закрывающий тэг </H2>, который говорит браузеру о прекращении действия инструкций элемента H2. Тогда браузер возвращается к более ранним инструкциям элемента body и снова начинает окрашивать весь следующий текст в черный цвет. Говоря о последовательном приоритете, следует также упомянуть и о принципе наследования. Этот принцип заключается в том, что элемент, не получивший собственных атрибутов, наследует атрибуты, присвоенные элементу, внутри которого заключен неохарактеризованный элемент. Конечно же, принцип наследования распространяется только на атрибуты, поддерживаемые наследующей и наследуемой сторонами. На примере это выглядело бы так. Допустим, что в таблице стилей у нас, как и прежде, есть описание элемента body BODY {color: black; font-family: Arial; bgcolor: white} , но нет описания для элемента H2. Тогда при прочтении кода:

это какой-то текст

А это заголовок

и снова текст

браузер интерпретирует его следующим образом. После открывающего тэга <body> он начнет окрашивать текст в черный цвет и отображать его шрифтом Arial. Далее, столкнувшись с открывающим тэгом <H2> и не найдя описания для данного элемента в таблице стилей, браузер обращается к более раннему описанию элемента body и пытается применить его описание к элементу H2. У элемента body имеется три описывающих его атрибута: цвет шрифта, тип шрифта и цвет фона. Из этих атрибутов только два поддерживаются элементом H2: цвет и тип шрифта. Именно их и применит браузер к элементу H2.

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

H1, H2, H3 {color: green}

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

H2 {color: red; font-family: Alefbet}

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

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

H2 EM {color: red}

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

H2 EM, H3 I {color: red}

Обращаю Ваше внимание на то, как важно при html-верстке внимательно следить за размещением знаков. Ведь достаточно забыть поставить одну запятую, как реестр однородных селекторов превращается в один контекстный селектор.

Теперь поговорим о том, как применять синтаксис CSS1 к html-верстке. Можно, используя элемент style, прописывать атрибутику каждому элементу. Например, использование такого подхода к отображению абзаца красным цветом будет выглядеть так:

<p style="color: red"> Текст абзаца </p>

Но такой подход не дает нам практически никаких преимуществ в сравнении с предыдущими версиями HTML. Как и ранее, для каждого элемента каждый раз при его появлении приходится создавать систему его описания. Основное достижение CSS — разделение содержания и представления — остается нереализованным. Более продуктивным способом использования STYLE является создание реестра описаний элементов внутри элемента HEAD. Выглядит это так:

<HEAD>
<style type="text/css"> ...информация о стилях... </style>
</HEAD>

Это простой и понятный способ. Но у него есть свой очевидный минус. Он заключается в том, что Вам придется вставлять таблицу стилей в каждую html-страницу. Это не только увеличивает вес сайта, но и усложняет изменение общей стилистики сайта. Для решения этой проблемы придуман простой и изящный способ. Таблица стилей выносится в отдельный файл с расширением .css. Затем внутри элемента HEAD html-страницы указывается ссылка на вышеозначенный файл. Выглядит это так:

<HEAD>
<link rel="stylesheet" type="text/css" href="../style1.css">
</HEAD>

Браузер, наталкиваясь на такую ссылку, немедленно прочитывает указанный файл и далее применяет его стилистические инструкции ко всем элементам html-страницы. В рамках CSS1 возможно также разрабатывать системы стилей, применяемые только к части элементов. Если мы хотим, к примеру, чтобы текст на странице отображался шрифтом Arial черного цвета размером в 16 пикселей, но при этом нам надо, чтобы некоторые части текста отображались шрифтом Tahoma красного цвета размером в 12 пикселей, то это можно сделать с помощью классов. Класс можно определить как некоторое именованное свойство или группу свойств, не привязанных к каким-либо конкретным элементам. Записывается класс очень просто:

.com {color: red; font-size: 12px; font-family: Tahoma}

Здесь com — это название класса, атрибуты в фигурных скобках - его описание, а точка в самом начале используется для того, чтобы браузер понял, что имеет дело не с каким-то стандартным элементом, а с независимым классом. Созданный класс можно присваивать различным элементам по необходимости. Можно присвоить его отрывку текста:

...какой-то текст <font class="com">нужный отрывок</font> продолжение текста...

Можно присвоить класс целому абзацу:

<p class="com">содержание абзаца</p>

и даже блоку:

<div class="com">содержание блока</div>

Продолжение следует...

Проверено Фотинией Проверено Фотинией

 

 

 

Back to the list of articles   |   Mail us          Click here to back to the main 

Hosted by uCoz