CSS
Тип формата |
Язык стилей |
---|---|
Стандарт(ы) |
[www.w3.org/TR/CSS1 Level 1 (Recommendation)] |
CSS (/siːɛsɛs/ англ. Cascading Style Sheets — каскадные таблицы стилей) — формальный язык описания внешнего вида документа, написанного с использованием языка разметки.
Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML, но может также применяться к любым XML-документам, например, к SVG или XUL.
Содержание
- 1 Обзор
- 1.1 Цель создания CSS
- 1.2 Способы подключения CSS к документу
- 1.3 Иерархия элементов внутри документа
- 1.4 Правила построения CSS
- 1.4.1 Виды селекторов
- 1.4.1.1 Универсальный селектор
- 1.4.1.2 Селектор элементов
- 1.4.1.3 Селектор классов
- 1.4.1.4 Селектор идентификаторов
- 1.4.1.5 Селектор атрибутов
- 1.4.1.6 Селектор потомков (контекстный селектор)
- 1.4.1.7 Селектор дочерних элементов
- 1.4.1.8 Селектор сестринских элементов
- 1.4.1.9 Селектор псевдоклассов
- 1.4.1.10 Селектор псевдоэлементов
- 1.4.1 Виды селекторов
- 1.5 Классы и идентификаторы элементов
- 1.6 Наследование. Каскадирование. Приоритеты стилей CSS.
- 1.7 Пример таблицы стилей
- 2 CSS-вёрстка
- 3 История создания и развития CSS
- 4 Поддержка CSS браузерами
- 5 CSS Framework
- 6 Расширения CSS
- 7 См. также
- 8 Примечания
- 9 Литература
- 10 Ссылки
Обзор
Цель создания CSS
CSS используется создателями веб-страниц для задания цветов, шрифтов, расположения отдельных блоков и других аспектов представления внешнего вида этих веб-страниц. Основной целью разработки CSS являлось разделение описания логической структуры веб-страницы (которое производится с помощью HTML или других языков разметки) от описания внешнего вида этой веб-страницы (которое теперь производится с помощью формального языка CSS). Такое разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом. Кроме того, CSS позволяет представлять один и тот же документ в различных стилях или методах вывода, таких как экранное представление, печатное представление, чтение голосом (специальным голосовым браузером или программой чтения с экрана), или при выводе устройствами, использующими шрифт Брайля.
Способы подключения CSS к документу
Правила CSS пишутся на формальном языке CSS и располагаются в таблицах стилей, то есть таблицы стилей содержат в себе правила CSS. Эти таблицы стилей могут располагаться как в самом веб-документе, внешний вид которого они описывают, так и в отдельных файлах, имеющих формат CSS. (По сути, формат CSS — это обычный текстовый файл. В файле .css не содержится ничего, кроме перечня правил CSS и комментариев к ним.)
То есть, эти таблицы стилей могут быть подключены, внедрены в описываемый ими веб-документ четырьмя различными способами:
- когда таблица стилей находится в отдельном файле, она может быть подключена к веб-документу посредством тега <link>, располагающегося в этом документе между тегами <head> и </head>. (Тег <link> будет иметь атрибут href, имеющий значением адрес этой таблицы стилей). Все правила этой таблицы действуют на протяжении всего документа;
<!DOCTYPE html>
<html>
<head>
.....
<link rel="stylesheet" href="style.css">
</head>
<body>
.....
</body>
</html>
- когда таблица стилей находится в отдельном файле, она может быть подключена к веб-документу посредством директивы @import, располагающейся в этом документе между тегами <style> и </style> (которые, в свою очередь, располагаются в этом документе между тегами <head> и </head>) сразу после тега <style>, которая также указывает (в своих скобках, после слова url) на адрес этой таблицы стилей. Все правила этой таблицы действуют на протяжении всего документа;
<!DOCTYPE html>
<html>
<head>
.....
<style media="all">
@import url(style.css);
</style>
</head>
</html>
- когда таблица стилей описана в самом документе, она может располагаться в нём между тегами <style> и </style> (которые, в свою очередь, располагаются в этом документе между тегами <head> и </head>). Все правила этой таблицы действуют на протяжении всего документа;
<!DOCTYPE html>
<html>
<head>
.....
<style>
body {
color: red;
}
</style>
</head>
<body>
.....
</body>
</html>
- когда таблица стилей описана в самом документе, она может располагаться в нём в теле какого-то отдельного тега (посредством его атрибута style) этого документа. Все правила этой таблицы действуют только на содержимое этого тега.
<!DOCTYPE>
<html>
<head>
.....
</head>
<body>
<p style="font-size: 20px; color: green; font-family: arial, helvetica, sans-serif">
.....
</p>
</body>
</html>
В первых двух случаях говорят, что к документу применены внешние таблицы стилей, а во вторых двух случаях — внутренние таблицы стилей.
Для добавления CSS к XML-документу, последний должен содержать специальную ссылку на таблицу стилей. Например:
<?xml-stylesheet type="text/css" href="style.css"?>
Иерархия элементов внутри документа
Как известно, HTML-документы строятся на основании иерархии элементов, которая может быть наглядно представлена в древовидной форме. Элементы HTML друг для друга могут быть родительскими, дочерними, элементами-предками, элементами-потомками, сестринскими.
Элемент является родителем другого элемента, если в иерархической структуре документа он находится сразу, непосредственно над этим элементом. Элемент является предком другого элемента, если в иерархической структуре документа он находится где-то выше этого элемента.
Пускай, например, в документе присутствуют два абзаца p, включающие в себя шрифт с полужирным начертанием b. Тогда элементы b будут дочерними элементами своих родительских элементов p и потомками своих предков body.
В свою очередь, для элементов p элемент body будет являться только родителем. И кроме того, эти два элемента p будут являться сестринскими элементами, как имеющими одного и того же родителя — body.
В CSS могут задаваться при помощи селекторов не только одиночные элементы, но и элементы, являющиеся потомками, дочерними или сестринскими элементами других элементов (см. подраздел «виды селекторов»).
Правила построения CSS
В первых трёх случаях подключения таблицы CSS к документу (см. выше) каждое правило CSS из таблицы стилей имеет две основные части — селектор и блок объявлений.
Селектор, расположенный в левой части правила, определяет, на какие части документа распространяется правило. Блок объявлений располагается в правой части правила. Он помещается в фигурные скобки, и, в свою очередь, состоит из одного или более объявлений, разделённых знаком «;». Каждое объявление представляет собой сочетание свойства CSS и значения, разделённых знаком ": ". Селекторы могут группироваться в одной строке через запятую. В таком случае свойство применяется к каждому из них.
селектор, селектор {
свойство: значение;
свойство: значение;
свойство: значение;
}
В четвёртом случае подключения таблицы CSS к документу (см. список) правило CSS (являющееся значением атрибута style тега, на который оно действует) представляет собой перечень объявлений («свойство CSS : значение»), разделённых знаком «;».
Виды селекторов
Универсальный селектор
* {
margin: 0;
padding: 0;
}
Селектор элементов
p {
font-family: arial, helvetica, sans-serif;
}
Селектор классов
.note {
color: red;
background-color: yellow;
font-weight: bold;
}
Селектор идентификаторов
#paragraph1 {
margin: 0;
}
Селектор атрибутов
a[href="www.somesite.com"] {
font-weight: bold;
}
Селектор потомков (контекстный селектор)
div#paragraph1 p.note {
color: red;
}
Селектор дочерних элементов
p.note > b {
color: green;
}
Селектор сестринских элементов
h1 + p {
font-size: 24pt;
}
Селектор псевдоклассов
a:active {
color: blue;
}
Селектор псевдоэлементов
p:first-letter {
font-size: 32px;
}
Классы и идентификаторы элементов
Класс или идентификатор может быть присвоен какому-нибудь элементу (тегу) HTML посредством атрибутов class или id этого элемента (тега):
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>
Селекторы классов и идентификаторов
</title>
<style>
p.Big {
font-family: arial, helvetica, sans-serif;
color: maroon;
}
div#First {
background-color: silver;
}
</style>
</head>
<body>
.....
<div id="First">
.....
</div>
<p class="Big">
.....
</p>
</body>
</html>
Основное отличие между классами элементов и идентификаторами элементов в том, что в документе какой-нибудь класс может быть присвоен сразу нескольким элементам, а идентификатор — только одному. Также отличие в том, что могут существовать множественные классы (когда класс элемента состоит из нескольких слов, разделённых пробелами). Для идентификаторов такое невозможно.
Важно отметить следующее отличие идентификатора от класса: идентификаторы широко используются в JavaScript для нахождения уникального элемента в документе.
Имена классов и идентификаторов, в отличие от названий тегов и их атрибутов, чувствительны к регистру ввода букв.
Свойства классов и идентификаторов задаются с помощью соответствующих селекторов. Причём может быть задано как свойство класса в целом (в таком случае селектор начинается с «.»), или свойство идентификатора самого по себе (в таком случае селектор начинается с «#»), так и свойство какого-нибудь элемента этого класса или с этим идентификатором.
В CSS помимо классов, задаваемых автором страницы, существует также ограниченный набор так называемых псевдоклассов, описывающих вид гиперссылок с определённым состоянием в документе, вид элемента, на котором находится фокус ввода, а также вид элементов, являющихся первыми дочерними элементами других элементов. Также в CSS существует четыре так называемых псевдоэлемента: первая буква, первая строка, применение специальных стилей до и после элемента.
Наследование. Каскадирование. Приоритеты стилей CSS.
Применение CSS к документам HTML основано на принципах наследования и каскадирования.
Принцип наследования заключается в том, что свойства CSS, объявленные для элементов-предков, наследуются элементами потомками. Но, естественно, не все свойства CSS наследуются — например, если для тега параграфа p средствами CSS задана рамка, то она не будет наследоваться ни одним тегом, содержащимся в данном теге p. Так сделано в предположении, что обрамление всех-всех вложений в тег - менее тривиальная задача, чем задание одиночной рамки. А вот если для параграфа p средствами CSS задан цвет шрифта (например, color:green;
), то это свойство будет унаследовано каждым элементом-тегом, находящимся в параграфе, до тех пор, пока этому тегу не будет назначен свой цвет шрифта. Который, в свою очередь, будет теперь наследоваться всеми вложенными в него подэлементами, не распространяясь на элементы-соседи тега.
Принцип каскадирования применяется в случае, когда какому-то элементу HTML одновременно поставлено в соответствие более одного правила CSS, то есть, когда происходит конфликт значений этих правил. Чтобы разрешить такие конфликты, вводятся правила приоритета.
- Наиболее низким приоритетом обладает стиль браузера;
- Следующим по значимости является стиль, заданный пользователем браузера в его настройках;
- И наиболее высоким приоритетом обладает стиль, заданный непосредственно автором страницы. И далее, уже в этом авторском стиле приоритеты расставляются следующим образом:
- Самым низким приоритетом обладают стили, наследуемые в документе элементом от своих предков;
- Более высоким приоритетом обладают стили, заданные во внешних таблицах стилей, подключённых к документу;
- Ещё более высоким приоритетом обладают стили, заданные непосредственно селекторами всех десяти видов (см. подраздел «виды селекторов»), содержащимися в контейнерах style данного документа. Нередки случаи, когда к какому-нибудь элементу имеют отношение, задают его вид, несколько таких селекторов. Такие конфликты между ними разрешаются с помощью расчёта специфичности каждого такого селектора и применения этих селекторов к данному элементу в порядке убывания их специфичностей. При расчёте специфичности селектора принимается во внимание:
- количество идентификаторов (
#id
) в селекторе — ((1,0,0) за каждый объявленный идентификатор в селекторе правила CSS); - количество классов (
.class
), атрибутов ([attr], [attr="value"]
) и псевдоклассов (:pseudo-class
) в селекторе — ((0,1,0) за каждый объявленный класс, атрибут и псевдокласс в селекторе правила CSS); - количество элементов (
h1, input
) и псевдоэлементов (::pseudo-element) в селекторе — ((0,0,1) за каждый объявленный элемент и псевдоэлемент в селекторе правила CSS).
- количество идентификаторов (
- Принцип расчёта таков, что, например, (1,0,0) будет иметь большую специфичность, соответственно — бо́льший приоритет, чем даже (0,10,0), (0,1,0) будет иметь большую специфичность, больший приоритет, чем (0,0,10). Если же рассчитанные таким образом специфичности окажутся одинаковыми, то к элементу будет применено правило, описанное селектором, расположенным в документе ниже других.
- Ещё более высоким приоритетом обладают стили, объявленные непосредственно в теге данного элемента посредством атрибута style этого тега;
- И наконец самым высоким приоритетом обладают стили, объявленные автором страницы или пользователем, с помощью сопроводительного слова
!important
. Если таких свойств несколько, то предпочтение отдаётся в первую очередь стилям, заданным пользователем, а для остальных свойств (которые будут являться задаваемыми автором страницы) потребуется определить их специфичности по принципам, описанным выше, и применять эти свойства в порядке убывания этих их специфичностей.
Пример таблицы стилей
Пример таблицы стилей (в таком виде она может быть либо размещена в отдельном файле .css либо же обрамлена тегами <style> и размещена в «шапке» той самой веб-страницы, на которую она действует):
p {
font-family: arial, helvetica, sans-serif;
}
h2 {
font-size: 20pt;
color: red;
background: white;
}
.note {
color: red;
background-color: yellow;
font-weight: bold;
}
p#paragraph1 {
padding-left: 10px;
}
a:hover {
text-decoration: none;
}
#news p {
color: blue;
}
[type="button"] {
background-color: green;
}
Здесь приведено семь правил CSS с селекторами p
, h2
, .note
, p#paragraph1
, a:hover
, #news p
и [type="button"]
.
- Первое правило присвоено HTML-элементу
p
(абзацу) — назначен стиль. Абзацы будут отображаться шрифтом Arial или, если такой шрифт недоступен, тогда Helvetica или Sans-serif, иначе, другим шрифтом этого семейства. - Второе правило присвоено HTML-элементу
h2
(заголовку второго уровня). Заголовок второго уровня будет отображаться красным на белом фоне с увеличенным размером. - Третье правило будет применено к любому элементу, атрибут
class
которого равен «note». Например, к параграфу:<p class="note">Этот абзац будет выведен полужирным шрифтом красного цвета на желтом фоне. </p>
- Четвёртое правило будет применяться только к элементу
p
, атрибутid
которого равенparagraph1
. Такой элемент будет иметь внутренний отступ в 10 пикселей (padding). - Пятое правило определяет стиль hover для элементов
a
— гиперссылок. По умолчанию, в большинстве браузеров текст элементовa
подчеркивается. Это правило уберёт подчеркивание, когда указатель мыши находится над этими элементами. - Шестое правило, применяется для элементов
p
, которые находятся внутри какого-либо элемента с атрибутомid
, равным «news
» (#news p — это типичный случай селектора потомков, см. 5-й пункт списка выше). - Седьмое правило применяется для всех элементов, у которых атрибут
type
равенbutton
. Например, это правило будет применено к элементу<input type="button">
(обычная кнопка), изменив его цвет фона на зеленый.
CSS-вёрстка
До появления CSS оформление веб-страниц осуществлялось исключительно средствами HTML, непосредственно внутри содержимого документа. Однако с появлением CSS стало возможным принципиальное разделение содержания и представления документа. За счёт этого нововведения стало возможным лёгкое применение единого стиля оформления для массы схожих документов, а также быстрое изменение этого оформления.
Преимущества:
- Несколько дизайнов страницы для разных устройств просмотра. Например, на экране дизайн будет рассчитан на большую ширину, во время печати меню не будет выводиться, а на КПК и сотовом телефоне меню будет следовать за содержимым.
- Уменьшение времени загрузки страниц сайта за счет переноса правил представления данных в отдельный CSS-файл. В этом случае браузер загружает только структуру документа и данные, хранимые на странице, а представление этих данных загружается браузером только один раз и может быть закэшировано.
- Простота последующего изменения дизайна. Не нужно править каждую страницу, а достаточно лишь изменить CSS-файл.
- Дополнительные возможности оформления. Например, с помощью CSS-вёрстки можно сделать блок текста, который остальной текст будет обтекать (например для меню) или сделать так, чтобы меню было всегда видно при прокрутке страницы.
Недостатки:
- Различное отображение вёрстки в различных браузерах (особенно устаревших), которые по-разному интерпретируют одни и те же данные CSS.
- Часто встречающаяся необходимость на практике исправлять не только один CSS-файл, но и теги HTML, которые сложным и ненаглядным способом связаны с селекторами CSS, что иногда сводит на нет простоту применения единых файлов стилей и значительно увеличивает время редактирования и тестирования.
История создания и развития CSS
CSS — одна из широкого спектра технологий, одобренных консорциумом W3C и получивших общее название «стандарты Web»[1]. В 1990-х годах стала ясна необходимость стандартизировать Web, создать какие-то единые правила, по которым программисты и веб-дизайнеры проектировали бы сайты. Так появились языки HTML 4.01 и XHTML, и стандарт CSS.
В начале 1990-х различные браузеры имели свои стили для отображения веб страниц. HTML развивался очень быстро и был способен удовлетворить все существовавшие на тот момент потребности по оформлению информации, поэтому CSS не получил тогда широкого признания.
Термин «каскадные таблицы стилей» был предложен Хокон Виум Ли в 1994 году. Совместно с Бертом Босом он стал развивать CSS.
В отличие от многих существовавших на тот момент языков стиля, CSS использует наследование от родителя к потомку, поэтому разработчик может определить разные стили, основываясь на уже определенных ранее стилях.
В середине 1990-х Консорциум Всемирной паутины (W3C) стал проявлять интерес к CSS, и в декабре 1996 года была издана рекомендация CSS1.
Уровень 1 (CSS1)
Рекомендация W3C, принята 17 декабря 1996 года, откорректирована 11 января 1999 года[2]. Среди возможностей, предоставляемых этой рекомендацией:
- Параметры шрифтов. Возможности по заданию гарнитуры и размера шрифта, а также его стиля — обычного, курсивного или полужирного.
- Цвета. Спецификация позволяет определять цвета текста, фона, рамок и других элементов страницы.
- Атрибуты текста. Возможность задавать межсимвольный интервал, расстояние между словами и высоту строки (то есть межстрочные отступы)
- Выравнивание для текста, изображений, таблиц и других элементов.
- Свойства блоков, такие как высота, ширина, внутренние (padding) и внешние (margin) отступы и рамки. Также в спецификацию входили ограниченные средства по позиционированию элементов, такие как float и clear.
Уровень 2 (CSS2)
Рекомендация W3C, принята 12 мая 1998 года[3]. Основана на CSS1 с сохранением обратной совместимости за несколькими исключениями. Добавление к функциональности:
- Блочная вёрстка. Появились относительное, абсолютное и фиксированное позиционирование. Позволяет управлять размещением элементов по странице без табличной вёрстки.
- Типы носителей. Позволяет устанавливать разные стили для разных носителей (например монитор, принтер, КПК).
- Звуковые таблицы стилей. Определяет голос, громкость и т. д. для звуковых носителей (например для слепых посетителей сайта).
- Страничные носители. Позволяет, например, установить разные стили для элементов на чётных и нечётных страницах при печати.
- Расширенный механизм селекторов.
- Указатели.
- Генерируемое содержимое. Позволяет добавлять содержимое, которого нет в исходном документе, до или после нужного элемента.
В настоящее время W3C больше не поддерживает CSS2 и рекомендует использовать CSS2.1
Уровень 2, ревизия 1 (CSS2.1)
Рекомендация W3C, принята 7 июня 2011 года.
CSS2.1 основана на CSS2. Кроме исправления ошибок, в новой ревизии изменены некоторые части спецификации, а некоторые и вовсе удалены. Удаленные части могут быть в будущем добавлены в CSS3.
Уровень 3 (CSS3)
CSS3 (англ. Cascading Style Sheets 3 — каскадные таблицы стилей третьего поколения) — активно разрабатываемая спецификация CSS. Представляет собой формальный язык, реализованный с помощью языка разметки. Самая масштабная редакция по сравнению с CSS1, CSS2 и CSS2.1. Главной особенностью CSS3 является возможность создавать анимированные элементы без использования JS, поддержка линейных и радиальных градиентов, теней, сглаживания и многое другое.
Преимущественно используется как средство описания и оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML, но может также применяться к любым XML-документам, например, к SVG или XUL.
Разрабатываемая версия (список всех модулей)[4].
В отличие от предыдущих версий спецификация разбита на модули, разработка и развитие которых идёт независимо.
CSS3 основан на CSS2.1, дополняет существующие свойства и значения и добавляет новые.
Нововведения, начиная с малых, вроде закругленных углов блоков, заканчивая трансформацией (анимацией) и, возможно, введением переменных[5][6].
Уровень 4 (CSS4)
Разрабатывается W3C с 29 сентября 2011 года.[7][8]
Модули CSS4 построены на основе CSS3 и дополняют их новыми свойствами и значениями. Все они существуют пока в виде черновиков (working draft).
Например:
- [dev.w3.org/csswg/css-cascade/ CSS Cascading and Inheritance Level 4]
- [dev.w3.org/csswg/selectors-4/ Selectors Level 4]
- [dev.w3.org/csswg/css-images-4/ CSS Image Values and Replaced Content Module Level 4]
- [dev.w3.org/csswg/css-backgrounds-4/ CSS Backgrounds and Borders Module Level 4]
- [dev.w3.org/csswg/css-color/ CSS Color Module Level 4]
- [dev.w3.org/csswg/mediaqueries-4/ Media Queries Level 4]
- [dev.w3.org/csswg/css-pseudo-4/ CSS Pseudo-Elements Module Level 4]
- [dev.w3.org/csswg/css-text-4/ CSS Text Module Level 4]
Поддержка CSS браузерами
Наиболее полно поддерживающими стандарт CSS являются браузеры, работающие на движках Gecko (Mozilla Firefox и др.), WebKit (Safari, Arora, Google Chrome) и Presto (Opera)[9].
Бывший когда-то самым распространённым браузером[10] Internet Explorer 6 поддерживает CSS далеко не полностью[11].
Вышедший спустя 7 лет после своего предшественника Internet Explorer 7 хотя и значительно улучшил уровень поддержки CSS[12][13], но всё ещё содержит значительное количество ошибок[14].
В Internet Explorer 8 используется новый движок, который полностью поддерживает CSS 2.1 и частично — CSS 3[15].
Для проверки поддержки браузером веб-стандартов (в том числе и различных частей стандарта CSS) был разработан тест Acid. Его вторая версия называется Acid2, а третья, соответственно, Acid3.
Различные блоковые модели
В стандартах CSS от Консорциума W3C используется модель, в которой свойство width определяет ширину содержимого блока, не включая в неё отступы и рамки. Ранние версии Internet Explorer (4 и 5), реализовали собственную модель, в которой width определяет расстояние между рамками блока, включая отступы (padding) и рамки (border). Кроме Internet Explorer 5 эту модель так же понимают браузеры Netscape 4 и Opera 7. Поддержка стандартной модели W3C появилась в IE только в шестой версии.
В разрабатываемом стандарте CSS3 для решения этой проблемы введено свойство box-sizing, со значениями content-box для указания на использование стандартной модели W3C и border-box для использования модели IE 5.
В браузере Mozilla, при поддержке этого свойства, под собственным «рабочим» названием -moz-box-sizing, ввели еще одно значение — padding-box, таким образом создав третью блочную модель, в которой width это размер содержимого и отступов блока, не включая рамки.
CSS-фильтры
Различия в реализации CSS различными браузерами заставляют веб-разработчиков искать решения, как заставить все браузеры отображать страницу одинаково. CSS-фильтры (также часто называемые CSS-хаками) позволяют выборочно применять (или не применять) стили к различным элементам. Например, известно, что Internet Explorer 6 применяет правила, использующие селекторы вида * html селектор (фильтр, известный как «star html bug»). Тогда, чтобы заставить и браузеры, использующие блоковую модель W3C и IE, работающего в Quirks mode со своей блоковой моделью, отображать блок #someblock шириной в 100 пикселей и внутренними отступами в 10 пикселей, можно написать такой код:
/* Модель W3C - 80px ширина содержимого и 10px отступы с каждой стороны */
#someblock { width: 80px; padding: 10px; }
/* Следующее правило применит только IE6. */
* html #someblock { width: 100px; padding: 10px; }
Ещё одним способом выборочного применения правил для Internet Explorer являются условные комментарии.
Безопасность
Все поддерживаемые на конец 2010 года версии Internet Explorer были уязвимы: при обработке браузером каскадных таблиц стилей (CSS) может возникнуть неинициализированная память, используемая затем для удалённого запуска на компьютере пользователя вредоносного кода[16].
CSS Framework
CSS Framework (также Web design framework) — это заранее подготовленная css-библиотека, созданная для упрощения работы верстальщика, быстроты разработки и исключения максимально возможного числа ошибок вёрстки (проблемы совместимости различных версий браузеров и т. д.). Так же как и библиотеки скриптовых языков программирования, CSS-фреймворки, обычно имеющие вид внешнего .css-файла, «подключаются» к проекту (добавляются в заголовок веб-страницы), позволяя неискушённому в тонкостях вёрстки программисту или дизайнеру правильно создать xhtml-макет.
Расширения CSS
Часто при вёрстке страниц нужно использовать одно и то же значение много раз: один и тот же цвет, один и тот же шрифт. И если это значение нужно будет изменить, то придётся менять во многих местах. В стандартном CSS нет возможностей наследования стилей, вычисляемых значений и прочих зависимостей.
Для решения этих вопросов и ускорения разработки существует несколько расширений языка CSS. Расширений в том смысле, что код CSS является валидным кодом для расширения, но не наоборот. Чтобы из кода «расширенного CSS» получился обычный CSS-файл, воспринимаемый браузером, необходимо выполнить компиляцию. Компиляция может быть нескольких типов:
- во время запуска страницы на стороне клиента (средствами JavaScript)
- во время запуска страницы на стороне сервера
- во время вёрстки сайта средствами специального компилятора
Примеры расширений CSS:
См. также
- HTML5
- SGML
- JavaScript
- CSS Framework
- CSSTidy (англ.)
Примечания
- ↑ Дэйв Ши, Молли Е. Хольцшлаг. Философия CSS-дизайна. / Пер. с англ. А. Слинкина. — М.: НТ Пресс, 2005. — 312 с.: ил.
- ↑ [www.w3.org/TR/CSS1 Cascading Style Sheets, level 1]
- ↑ [www.w3.org/TR/2008/REC-CSS2-20080411/ Cascading Style Sheets, level 2 CSS2 Specification]
- ↑ W3C: [www.w3.org/Style/CSS/current-work CSS: current work], CSS 3, etc.
- ↑ [rip747.wordpress.com/2008/04/10/css3-css-variables-are-a-bad-idea-just-allow-us-to-call-other-selectors/ CSS3: css variables are a bad idea. Just allow us to call other selectors.] // Rip’s Domain
- ↑ [www.dave-woods.co.uk/index.php/css-variables/ CSS Variables] // dave-woods.co.uk
- ↑ [www.w3.org/TR/2011/WD-selectors4-20110929/ Selectors Level 4]. W3.org (29 сентября 2011). [www.webcitation.org/682WaRboP Архивировано из первоисточника 30 мая 2012].
- ↑ [www.webmonkey.com/2011/10/discover-whats-new-in-css-4/ Discover What's New in CSS 4 | Webmonkey | Wired.com]. Webmonkey (26 октября 2011). [www.webcitation.org/682WbfhI6 Архивировано из первоисточника 30 мая 2012].
- ↑ [www.webdevout.net/browser-support-summary Web browser standards support]
- ↑ [www.onestat.com/html/aboutus_pressbox53-firefox-mozilla-browser-market-share.html Mozilla’s Firefox global usage share is still growing according to OneStat.com]
- ↑ [www.quirksmode.org/css/contents.html Contents and browser compatibility]
- ↑ [blogs.msdn.com/ie/archive/2006/08/22/712830.aspx Details on our CSS changes for IE7] IEBlog
- ↑ [msdn2.microsoft.com/en-us/library/bb250496(VS.85).aspx Cascading Style Sheet Compatibility in Internet Explorer 7] MSDN
- ↑ [www.positioniseverything.net/explorer.html The weird and wonderful world of Internet Explorer]
- ↑ [msdn.microsoft.com/en-us/library/cc351024(VS.85).aspx CSS Compatibility and Internet Explorer] MSDN
- ↑ [www.interfax.by/article/74491 Microsoft: все версии Internet Explorer уязвимы для хакеров]
Литература
- Эд Титтел, Джефф Ноубл. HTML, XHTML и CSS для чайников, 7-е издание = HTML, XHTML & CSS For Dummies, 7th Edition. — М.: «Диалектика», 2011. — 400 с. — ISBN 978-5-8459-1752-2.
- Стивен Шафер. HTML, XHTML и CSS. Библия пользователя, 5-е издание = HTML, XHTML, and CSS Bible, 5th Edition. — М.: «Диалектика», 2011. — 656 с. — ISBN 978-5-8459-1676-1.
- Энди Бадд, Камерон Молл, Саймон Коллизон. CSS: профессиональное применение Web-стандартов = CSS Mastery: Advanced Web Standards Solutions. — М.: «Вильямс», 2008. — 272 с. — ISBN 978-5-8459-1199-5.
- Кристофер Шмитт. CSS. Рецепты программирования = CSS. Cookbook. — СПб.: БХВ-Петербург, 2007. — 592 с. — ISBN 978-5-9775-0075-3.
- Эрик А. Мейер. CSS-каскадные таблицы стилей: подробное руководство = Cascading Style Sheets: The definitive Guide. — М.: Символ, 2006. — 576 с. — ISBN 5-93286-075-8.
Ссылки
Англоязычные ресурсы
- [www.w3.org/Style/CSS/Overview.en.html Cascading Style Sheets Home page] (англ.)
- [www.w3.org/Style/Overview.en.html Web Style Sheets Home page] (англ.)
- [www.quirksmode.org/css/box.html Различные блоковые модели CSS] (англ.)
- [css3test.com/ CSS3-тест браузера] (англ.)
- [www.webdevout.net/browser_support_css.php Таблицы поддерживаемых браузерами возможностей CSS] (англ.)
- [jigsaw.w3.org/css-validator/ Валидатор CSS] (англ.)
- [www.csszengarden.com/ Демонстрация возможностей CSS-вёрстки] (англ.)
- [www.css3.info/preview/ CSS3 Preview — Демонстрация новых возможностей CSS3] (англ.)
- [www.romancortes.com/blog/pure-css-coke-can/ Демонстрация возможностей] (англ.)
- [cssresizer.com Оптимизатор CSS кода] (англ.)
Русскоязычные ресурсы
- [www.w3.org/Style/CSS/Overview.ru.html Каскадные Таблицы Стилей Домашняя страница] (рус.)
- [www.w3.org/Style/Overview.ru.html Веб таблицы стилей Домашняя страница] (рус.)
- [jigsaw.w3.org/css-validator/validator.html.ru Сервис проверки CSS от W3C]
- [ru.html.net/tutorials/css/ Учебник CSS] (рекомендован [www.w3.org/Style/CSS/learning w3.org])
- [htmlbook.ru/css Справочник CSS]
|
|
|