CSS предполагает 3 типа таблиц стилей - встроенные, внедренные (внутренние) и связанные (внешние).
Впервые идея форматирования HTML-документов с помощью CSS была рекомендована Консорциумом W3C в 1996 году. Эта рекомендация, которая была обновлена в 1998 году, используется Web-разработчиками и по сей день.
Что значит слово "каскадный"?
Термин "каскадный" означает, что в одной странице HTML могут
использоваться разные стили. Броузер, поддерживающий таблицы стилей,
будет следовать их порядку (как по каскаду), интерпретируя информацию
стилей.
Это означает, что вы можете использовать все три типа стилей, и броузер
будет интерпретировать сначала связанные, затем внедренные и, наконец,
встроенные стили. Даже если ко всему узлу будут применены образцы стилей,
можно будет управлять отдельными аспектами страниц с помощью внедренных
стилей, а отдельными областями внутри этих страниц - с помощью
встроенных стилей.
Другой аспект каскадирования - наследование (inheritance).
Наследование означает, что если не указано иное, то конкретный стиль
будет унаследован другими элементами страницы HTML. Например, если вы
примените определенный цвет текста в теге <р>, то все теги внутри
этого абзаца наследуют этот цвет, если не оговорено иное.
Возврат в начало страницы
Возврат на главную страницу сайта
Существует три метода для применения таблицы стилей к документу HTML:
selector + declaration = rule | ||
Р | {font-family: | helvetica;} |
| | | | | |
selector | property | value |
| | | | |
------------------------------ | ||
declaration |
Итак, какскадная таблица стилей - это набор правил форматирования тегов HTML. Например, для того, чтобы цвет фона Web-страницы сделать черным, необходимо объявить следующее правило форматирования:
body{background:black}
Будьте внимательны! По умолчанию цвет шрифта - черный! Не следует претендовать на лавры Малевича! Ваш "Черный квадрат" Эрмитаж не купит!
В данном случае объявлено правило форматирования тега body, а именно - свойству стиля background присвоено значение black (черный). В результате применения этого правилацвет фона всего документа изменится на черный.
Обратите внимание: в таблице стилей теги HTML не заключаются в круглые скобки.
Свойства CSS должны находиться в фигурных скобках.
Для каждого тега HTML можно указать не одно, а несколько свойств стиля.
Изменим с помощью CSS не только цвет фона Web-страницы, но и цвет шрифта (на белый).
body{background:black;color:white}
Формат самого правила не имеет значения, главное - правило должно читаться удобно и легко. Например, вышеприведенное правило можно записать и так:
body{ background:black; color:white}
Одно и то же правило сстиля можно применить сразу к нескольким различным тегам HTML-страницы. Например:
body,td,h1{ background:black; color:white}
Отдохнем - посмотрим как это выглядит на экране!
Встроенный стиль применяется к любому тегу HTML с помощью атрибута style следующим образом:
<P style="font: 12pt Courier New"> The text in this line will display as 12 point text using the Courier New font. </P>
Или:
<p style="font: 12pt Arial"> The text in this line will display as 18 point text using the Arial font. </p>Посмотрим на результат:
The text in this line will display as 12 point text using the Courier New font.
The text in this line will display as 18 point text using the Arial font.
Mожно добавлять встроенный стиль в любой тег HTML, в котором эта операция будет иметь смысл. Среди таких тегов можно назвать абзацы, заголовки, горизонтальные линии, якоря и ячейки таблиц. Ко всем этим элементам логично применять встроенные стили.Вот пример работы тега <div>:
<div style="font-family: Garamond; font-size: 18 pt;>"AII of the text within this section is 18 point Garamond.
и тега <span>:
<span style="color:#ff3300;"> This text appears in the color red, with no line break after the closing span tag </span> and the rest of the text.This text appears in the color red, with no line break after the closing span tag and the rest of the text.
Cовет
Хотя встроенные стили довольно полезны - гораздо лучше разрабатывать стандартные стили для всего Web-узла и затем применять их, используя внедренные или связанные таблицы стилей.Рассмотрим пример внедренного стиля:
<html> <head> <title>Embedded Style Sheet Example </title> </head> <style> BODY{ background: #FFFFFF; color: #000000; } H1{ font: 14pt verdana; color: #CCCCCC;} P{font: 12pt times;} A{color: #FFOOOO; text-decoration: none} </style>
Как видно из примера, приведенного выше, таблица стилей теперь
отличается от кода стандартной страницы HTML, но все же логику проследить
нетрудно. В нашем случае для основной части страницы (body) указаны цвет
фона, цвет текста и верхнее, левое и правое поля в дюймах.
Для заголовка первого уровня (HI) указывается шрифт (название шрифта и
размер в пунктах). В этом и состоит удобство каскадных таблиц стилей -
вы можете задавать размеры не только в пунктах, но и пикселях (рх),
процентах (75%) и сантиметрах (cm).
Но! Не все броузеры способны понимать эти новые единицы измерения. Я попробовала применить новую единицу измерения m во внедренной таблице стиля страницы "Дизайн на основе правил" (webrules.htm). Броузер Internet Explorer 5.0 показал эту страницу таким образом, как она задумывалась. Когда же просмотр страницы осуществлялся броузером Internet Explorer 3.0, результат был плачевным - несколько черных штрихов и никакого текста.
Однако, вернемся к нашему примеру.А теперь посмотрим как этот пример внедренного стиля будет выглядеть на экране. Щелкните здесь!
Вот как выглядит пример связанной таблицы стилей:
<style> BODY{ background: #ffffcc; color: #000000; } P { font-family : sans-serif; font-style : italic; font-size : 16pt; color: #006633; } H1{ font-family: Arial, Helvetica, sans-serif; font-size: 24pt; color: #996633; } </style>
Теперь сохраним этот документ как отдельный файл. Назовем его
style-l.css и поместим в папку таблиц стилей с именем
style.
С этим документом любое количество страниц HTML. Для этого нужно
использовать между тегами </title> и </head> следующую
конструкцию:
<link rel=stylesheet href="style-1.css" type="text/css">
Любая страница, содержащая такую связь, будет оформлена в соответствии со стилями, указанными в файле style_1.css. Результаты применения стилей показаны здесь.
Код этой страницы выглядит следующим образом:
<html> <head> <title>Пример использования связанной таблицы стилей</title> <link href="style/style-1.css" rel=stylesheet type="text/css"> </head> <body> <h1>Старинная студенческая песня</h1> <P> Поднявши меч на наш союз <br> достоин будет худшей кары,<br> и я за жизнь его тогда<br> не дам и ломанной гитары.<br> Как вожделенно жаждет век<br> нащупать брешь у нас в цепочке...<br> Возьмемся за руки друзья,<br> чтоб не пропасть поодиночке.<br> </P> <p> Среди совсем чужих пиров<br> и слишком ненадежных истин,<br> не дожидаясь похвалы, <br> мы перья белые почистим.<br> Пока безумный наш султан<br> сулит дорогу нам к острогу,<br> возьмемся за руки друзья,<br> возьмемся за руки, ей-богу.<br> </p> <p> Когда ж придет дележки час,<br> не нас калач ржаной поманит,<br> и рай настанет не для нас,<br> зато Офелия помянет.<br> </p> <p> Пока ж не грянула пора<br> нам отправляться понемногу,<br> возьмемся за руки друзья,<br> возьмемся за руки, ей-богу.<br> </p> Это стихотворение Булата Окуджавы, ставшее уже классикой.<br> <a href="css.htm#метка_51">Вернемся? </a> </body> </html>Здесь важно помнить о смысле концепции каскадирования. Если вам нужны 10 страниц HTML, на которые глобально воздействует эта таблица стилей, вы можете ее применить. Затем, если нужно внести небольшие корректировки в отдельные страницы, можно либо внедрить в эти страницы дополнительные стили, либо использовать встроенный стиль.
Далее к коду был добавлен внедренный стиль, и вот что получилось. - встроенный стиль применяется поверх связанного стиля
Cовет
Обязательно просматривайте страницы с таблицами стилей в соответствующем броузере - Internet Explorer 3.0 и выше и Netscape 4.0 и выше. В противном случае все ваши стили могут исчезнуть! Следует всегда тестировать такие страницы без таблицы стиля (используйте более старый броузер или просто временно измените название таблицы стилей, чтобы броузер не мог ее найти) и проверять, чтобы они выглядели приемлемо.
Один из наиболее привлекательных аспектов таблиц стиля - это возможность
применения различных шрифтов к определенной странице без необходимости
использовать многочисленные теги <font>. Таблицы стилей
позволяют выбирать ряд шрифтов и применять их к конкретным разделам
страницы типа номера заголовка, абзаца или другого фрагмента. Однако
вместо стандартного тега HTML <font> используется атрибут таблицы
стилей font-family. Вы можете добавлять в этот тег многие
атрибуты либо использовать классы и группировку, чтобы реализовать всю
мощь средств работы со шрифтами с помощью таблиц стилей.
Практическая реализация поддержки шрифтов в таблицах стилей аналогична
проблемам, с которыми пользователи сталкиваются при использовании тегов
<font> и соответствующих атрибутов. Конкретный шрифт д
олжен быть установлен на том компьютере, где происходит просмотр страницы.
Как и тег <font>, таблицы стилей позволяют указывать любое
число шрифтов, чтобы увеличить вероятность того, что броузер клиента
подберет нужный шрифт из списка. Например, если у них не будет шрифта
Century Schoolbook, то, возможно, найдется Garamond и т. д. Хотя сами
эти шрифты различаются довольно значительно, их семейства достаточно
похожи, чтобы считать, что они выполняют сходные дизайнерские задачи.
Таблицы стилей распознают пять семейств шрифтов:Serif (С засечками)
, Sans Serif (Рубленые),Script (Рукописные),
Monospace (Моноширинные), Decorative (Декоративные).
Более подробно о шрифтах вы можете прочесть
здесь.
Вы можете указывать несколько названий шрифтов в любом теге HTML,
используя встроенные, внедренные и связанные таблицы стилей.
Напрмер, на этой странице используется внедренная таблица стилей, и для
заголовка первого уровня задан:
H1{font-family:Arial,Halvetica,Verdana,sans-serif; font-weight:bold; color:#333399;}Если броузер не сможет найти на компьютере клиента первые три шрифта, он поставит вместо них первый из доступных рубленных шрифтов семейства sans-serif и будет его использовать.
Увы! На практике, когда в качестве первого шрифта был указан шрифт Verdana, а отображение на экран осуществлялось броузером Internet Explorer 3.0 вместо заголовка "Каскадные таблицы стилей" я получила абракадабру.
У шрифтов есть очень много свойств, которые можно изменять, и очень много
значений, которые могут принимать эти свойства.
Как и для стандартных шрифтов HTML, можно задавать свойства для
управления размером и цветом. Однако для шрифтов HTML нельзя изменять
насыщенность и тип шрифта, а также высоту строки или интерлиньяж
(расстояние между отдельными строками текста). Кроме того, доступные в
таблицах стилей методы управления размером шрифта намного превосходят
уровень, предлагаемый стандартами HTML.
Цвет
Таблицы стилей используют стандартные методы работы с цветами броузера.
Другими словами, для получения оптимальных результатов используйте
шестнадцатиричный (и лучше всего, поддерживаемый броузерами) цвет.
Вы можете добавлять цвет, как и другие свойства стиля, в любой подходящий
тег HTML для встроенных, внедренных и связанных стилей.
Например, при описании цвета заголовка первого уровня указоно значения
color:#333399;, в результате мы видим заголовок "Каскадные таблицы стилей"
темно-синего цвета.
Насыщенность
Насыщенность (weight) показывает толщину шрифта. Например, для гарнитуры
Arial существуют такие разновидности: жирный (black), полужирный (bold), светлый (light) и т. д.
Cовет
Для шрифтов существуют различные начертания. Если вы не уверены на сто процентов, что на компьютере клиента установлен определенный шрифт, разумнее будет применять начертание, доступное для всех шрифтов. Существует только одна (не считая нормальной) стандартная насыщенность, которая доступна для большинства шрифтов. Это - полужирное начертание!Вот пример применения встроенного начертания:
<p style="font-family: arial, helvetica, sans-serif; font-weight: bold; color=#cc99ff;"> We are an intelligent species and the use of our intelligence quite properly gives us pleasure. In this respect the brain is like a muscle. When it is in use we feel very good. Understanding is joyous. </p >
Полужирное начертание применяется к абзацу.
We are an intelligent species and the use of our intelligence quite properly gives us pleasure. In this respect the brain is like a muscle. When it is in use we feel very good. Understanding is joyous.
Cовет
Курсивное и полужирное начертания должны использоваться экономно. Их функция - выделение. Обычно не следует использовать полужирный или курсив для длинных фрагментов основного текста.
Размер
Размер шрифта в таблицах стилей можно определять, используя пункты (
points), пиксели (pixels), дюймы (inches), сантиметры (centimeters),
миллиметры (millimeters) и пики (picas), а также используя новые единицы измерения.
Для Web-дизайнеров естественно выбирать пункты или пиксели, хотя все
будет зависеть от ваших вкусов.
Cовет
Использование единиц, отличных от пунктов, может вызывать серьезные проблемы. Если вместо пунктов используются пиксели, то хотя текст, размер которого задан в пикселях, будет виден в броузерах с поддержкой таблиц стилей (типа Internet Explorer 3.0 и выше или Netscape 4.0 и выше), он может не выводиться на печать!
Другие параметры шрифта
Два других интересных аспекта таблиц стилей - это классы и
группировка.
Классы (class) определяют способ разбиения стилей
на очень точные части. Всякий раз, когда вы хотите, чтобы определенный
фрагмент текста как-то отличался от остальных, вы можете создать
собственный тег HTML. Каждый тип форматирования текста, который вы
определяете, называется стилевым классом (style class).
За стилевым классом в таблице стилей закрепляется имя. Это имя задается как обычное имя, но с точкой в качестве первого символа.
Предположим, что в документе вам нужны два различных вида заголовков H1. Можно создать стилевой класс для каждого из них, помещая следующий код в таблицу стилей:
<style> Н1.serif { font: 34pt "Times New Roman", Times, serif; color: #DC143C;} H1.sans{font:18pt Arial; color: #FF8C00; text-align : center;} </style>
Для выбора между двумя стилями класса в теге <hl> (аналогичные
правила действуют и для других тегов, имеющих описание а таблице стилей)
используется
атрибут class=имя_стиля.
Обратите внимание - здесь имя стиля употребляется без точки.
Например:
Слово Wisdom отображается шрифтом Times New Roman, 34 пункта
темно-красного цвета
(на тех компьютерах, где есть поддержка таблиц стилей броузерами),
а слова More Wisdom отображаются
шрифтом Arial, 18 пунктов темно-оранжевого цвета (при этом задано выравнивание
заголовка посередине страницы). Для текста в промежутках между этими
заголовками по умолчанию используетcя шрифт Times, поскольку явно не
указал шрифт для этих фрагментов. Поэтому броузер выбирает собственный
заданный по умолчанию основной шрифт.
Мудрые мысли написаны на хорошем английском языке, и принадлежат
действительно мудрым людям. В качестве упражнения попробуйте сделать
перевод.
В HTML-коде запись этих "Мудростей" выглядит так:
<h1 class=serif>Wisdom </h1> "Do not fear your enemies. The worst they can do is kill you. Do not fear friends. At worst, they may betray you. Fear those who do not care; they neither kill nor betray, but betrayal and murder exists because of their silent consent." - Bruno Jasienski. <h1 class=sans>More Wisdom</h1> "Young love is a flame; very pretty, often very hot and fierce, but still only light and flickering. The love of the older and disciplined heart is as coals, deep burning, unquenchable." - Henry Ward Beecher.
Группировка (grouping) состоит в объединении нескольких свойств и значений стилей. При этом возникают более жесткие правила для форматирования. Ниже приведен пример обычного класса:
Р.g{font: Arial;font-size: 22pt;line-height: 14pt }
Это означает, что все абзацы класса g будут отображаться шрифтом Arial, 22 пункта, с интерлиньяжем 14 пунктов. Если применить к этому классу группировку, то получится следующее определение:
P.g{font:22pt/14pt Arial}
Страница будет отображаться одинаково в обоих случаях. Обратите внимание на то, что сначала указываются значение для размера шрифта, высота строки после наклонной черты, а затем идет название шрифта. При группировке всегда требуется правильный синтаксис выражения. Попробуем воспользоваться пределением абзаца класса g.
ПРИМЕР абзаца класса g, к которому применена группировка.
Таблицы стилей могут помогать в создании макета страницы, предоставляя широкие возможности выравнивания элементов страницы и управления полями. Выравнивание текста выполняется с помощью свойства text-align. Возможные значения left, right, center и justify.
Посмотрим, как это выглядит.
Итак, в данном примере используется встроенный стиль для выравнивания текста и его воздействия на отдельные абзацы.
Для управления полями Web-страницы используются четыре свойства:
margin-top, margin-bottom, margin-left и
margin-right.
Как и все свойства CSS, они могут применяться к
любому логическому объекту. Обычно для управления полями используются
объекты BODY и Р (paragraph - абзац).
Для указания значений полей можно использовать разные единицы измерения:
пиксели, пункты, сантиметры, дюймы и проценты.
Для справки - стандартные макеты страниц HTML обычно измеряются в
пикселях.
CSS разрешают использовать отрицательные значения для полей. Это дает возмоожность дизайнеру создавать перекрывающиеся области страницы, добиваясь интересного эффекта.
На странице Пример создания 3-D эффекта приводится пример, в котором использовалось отрицательное значение полей margin-topдля создания графического эффекта без употребления графических средств.
Рассмотрим пример, создающий эффект, который без задания стиля можно
было бы достичь только с помощью графики. В процессе создания Web-страницы
наложим один текст на другой.
Эта возможность частичного перекрытия текста
часто используется в дизайне реальных страниц.
Сначала посмотрим на результат,
а затем обсудим как он получен.
HTML-код этой страницы выглядит так:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <META http-equiv="Content-Type"content="text/html; charset=windows-1251"> <META http-equiv="Content-Language" content="ru"> <title>Пример создания 3-D эффект с помощью CSS</title> <STYLE type=text/css>BODY {color: #000080; font-size : 16px; font-family : Arial, Helvetica, sans-serif; } .тень{ color: #DBDBDB; text-align : right; font : lighter "Times New Roman", Times, serif; margin-top : 30px; font-size : 270px; line-height : 270px; } .основа{ color: red; font : 900 220px "Times New Roman", Times, serif; margin-top : -230px; line-height : 250px; } .слой1{ color: black; margin-top : -130px; font-weight : normal; font-size : 65px; line-height : 65px; font-family : Arial, Helvetica, sans-serif; } .слой2{ color: green; margin-top : 30px; font-weight : normal; font-size : 35px; line-height : 45px; font-family : Arial, Helvetica, sans-serif; } </STYLE> </head> <body> <p>Пример наложения текстов друг на друга, реализованный с помощью тега <div> и CSS. В результате получаем 3-D эффект. </p> <center> <table width="500" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center" valign="top"> <div class="тень">Мы</div> <div class="основа">Мы</div> <div class="слой1">сделали это без всякой графики</div> <div class="слой2">используя только каскадные таблицы стилей</div> </td> </tr> </table> </center> <br> <a href="css.htm#метка_91"><font size="2">Возврат к рассмотрению вопроса о каскадных таблицах стилей</font></a> </body> </html>
В данном примере тег <div> применяется для выделения фрагмента
HTML-документа. Он ничего не форматирует, а лишь помечает фрагмент
текста, который рассматривается как единый объект.
Атрибут class
этого тега позволяет сослаться на таблицу стилей, и таким образом задать
стиль представления текста, расположеного между тегами
<div class> и </div>.
Обратите внимание на то, как в таблице стилей определяется стиль - набору свойств в фигурных скобках присваивается имя, перед которым ставится точка.
В этом примере тексты определяются как бы в слоях, которые накладываются
друг на друга.
Сначала выводится слой тень, на него накладывается слой
основа, а затем слой1 и слой2.
Порядок, в котором слои накладываются друг на друга, задается порядком
следования фрагментов текста, помеченных тегом <div>.
Перекрытие слоев обеспечивается применением отрицательных значений
свойста margin-top (отступ сверху).
В рассмотренном нами примере были использованы следующие свойства:
margin-top | отступ сверху | |
color | цвет | |
font-size | размер шрифта | |
font-family | семейство шрифтов | |
font-weight | степень "жирности" шрифтов | |
line-height | высота строки |
Запомните - используя отрицательные значения свойста margin-top, можно наложить один текст на другой.
Рассмотрим вопрос позиционирования элементов на странице.
На этом сайте разбирался вопрос о расположении элементов на странице
путем использования фреймов и
таблиц.
Для перекрытия элементов приходилось применять особые ухищрения,
как в примере создания 3-D эффекта.
Существуют специальные свойства для позиционирования, применяя которые можно легко установить элементы в нужные места страницы. При этом элементы могут накладываться друг на друга.
Для позиционирования элементов на странице используются три
свойства:
Конечно, при использовании этих трех свойств не создается эффект трехмерного пространства, но это уже нечто большее, чем двухмерная плоскость.
Кроме свойств-координат, для позиционирования элементов понадобится
свойство position. Это свойство в сочетании со свойствами
left и top позволяет устанавливать элементы в
определенные позиции окна.
Свойство position может принимать
три значения:
Заметим, что положение элемента не зависит от положения его тэга внутри HTML-документа.
Посмотрим пример помещение текста на определенное место на странице и назначение ему красного цвета.
HTML-код этой страницы выглядит так:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <META http-equiv="Content-Type"content="text/html; charset=windows-1251"> <META http-equiv="Content-Language" content="ru"> <title>Пример позиционирования текста</title> </head> <body> <H1 STYLE="position:absolute; top:120;left:100;width:400;height:100;color:red"> Это - позиционированный текст </H1> <h1>Текст, созданный без свойства позиционирования</h1> <p style="position: relative; top: 40%;"><a href="css.htm#метка_10_2"> <font size="2">Возврат к рассмотрению вопроса о каскадных таблицах стилей</font></a></p> </body> </html>
Стиль текста был задан в теге заголовка первого уровня <H1> с
помощью атрибута STYLE. В дальнейшем тег <h1>применен
еще раз, но стиль, указанный в атрибуте STYLE, уже не
применяется.
Второй текст появляется там, где он и должен появиться, как если бы первого
тега <H1> не было совсем.
Верхний текст не позиционирован, а нижний - позиционирован.
Дело в том, что в первом случае использования тега <H1> элемент
позиционировался индивидуально с помощью атрибута STYLE, а во
втором случае специального позиционирования не осуществлялось и броузер
расположил элемент <H1> так, как он это должен был сделать по
умолчанию.
Продолжение следует!
Фильтры - это эффекты изменения внешнего вида
текста и графики на странице.
Иначе, фильтр - это трансформация
исходного изображения по определенным правилам.
Существуют статические и динамические фильтры.
Статические фильтры просто изменяют внешний вид элемента. Динамические фильтры
позволяют изменить графический элемент со скоростью, задаваемой пользователем.
Работа динамических фильтров основана на сценариях.
Статический фильтр задается как свойство в таблице стилей.
filter: название_фильтра (параметр1,параметр2,...,параметр№)
Параметры не обязательны.
В версии 4 языка HTML имеется 14 статических фильтра.
Чаще других используются следующие фильтры (без параметров):
Рассмотрим пример создания статического фильтра.
В примере в окно выводится броузера графическая картинка в формате jpeg и текст
в следующей последовательности:
Обратите внимание: фильтр Blur, примененый к тексту создает эффект трехмерности - создается впечатление отбраываемой тени.
Посмотрим еще один пример использования статических фильтров. . В данном случае применение фильтра Xray создает эффект негатива "картинки", а также изменяет цвет шрифта текста. Фильтр Wave создает не просто "волнистое" искажение картинки - ее просто не видно за этими полосками! Зато текст, обработанный спомощью этого фильтра стал пестреньким (по цвету) и очень миленьким. Не правда ли?
Продолжение следует!
Учебник Малдера (Mulder) по каскадным таблицам стилей | http://webmonkey.com/authoring/stylesheets |
Справочник по совместимости каскадных (многоуровневых) таблиц в журнале Webreview. | http://style.webreview.com |
Спецификация каскадных (многоуровневых) таблиц стилей | http://www.w3.org/Style/CSS |