CSS (от англ. Cascading Style Sheets - каскадные таблицы стилей) представляет собой технологию описания внешнего вида документов, написанных языком разметки. Применяются в основном в качестве средств оформления Web-страниц в форматах HTML и XHTML, но также возможно их применение в формате XML.
CSS используют при создании Web-страниц, чтобы задавать цвета, шрифты, расположения и другие аспекты представления документа. Основной целью при разработке CSS стало разделение содержимого, созданного с помощью языка разметки, и представления документа, созданного на CSS. Это разделение повышает доступность документа, дает большую гибкость и управляет его представлением, а также снижает уровень сложности и повторяемости в структурном содержимом. Помимо этого, CSS способствует представлению одного и того же документа в разных стилях или методах вывода: экранном представлении, печати, голосовом чтении (специальном голосовым браузере или программе чтения с экрана), или при выводе устройствами, работающими с шрифтом Брайля.
CSS при отображении страниц может браться из разных источников (порядок иерархии от сильного к слабому):
Авторские стили (информация стилей предоставляется автором страницы) в виде:
Пользовательские стили: локальный CSS-файл, который пользователь указывает в настройках браузера, переопределяет авторские стили и применяется ко всем документам.
Стиль браузера: стандартный стиль, который используется браузером по умолчанию для представления элементов.
В таблицах стилей содержатся наборы правил, каждое из которых состоит из селекторов (одного или нескольких), которые разделены запятыми, а также блока определений, который, в свою очередь, обрамляется фигурными скобками и содержит набор свойств и их значений.
Схематично это можно представить так:
селектор, селектор {
свойство: значение;
свойство: значение;
свойство: значение;
}
В стандарте CSS определяются приоритеты, с учетом которых применяют правила стилей. Если какому-то элементу подойдут свойства нескольких правил сразу, это будет называться каскадом, в котором для каждого свойства рассчитан приоритет (вес), что делает результат предсказуемым.
Приоритет рассчитывается от большего к меньшему по схеме:
Помимо этого, важно расположение свойств по порядку (свойство, указанное позднее, имеет меньший приоритет).
До появления CSS Web-страницы оформлялись внутри содержимого документа. Но с появлением CSS стали принципиально разделять содержание и представление документа. В связи с этим стали легко применять единый стиль оформления для многих схожих документов, а также быстро изменять это оформление.
К преимуществам применения можно отнести:
К недостаткам относятся:
Рекомендация W3C, принятая 17 декабря 1996 года, откорректированая 11 января 1999 года. Данная рекомендация предоставляет следующие возможности:
Рекомендация W3C, принятая 12 мая 1998 года. Построенная на CSS1 с сохранением обратной совместимости. В результате добавились следующие функции:
Рабочая версия W3C от 8 сентября 2009 года. Построенная на CSS2, содержит исправление ошибок.
Разрабатываемая версия.
Стала значительно шире в сравнении с прежними версиями. Содержит различные нововведения, начиная с малых, типа закругленных углов блоков, заканчивая трансформацией (анимацией) и, возможно, введением переменных.
Включение в HTML
CSS можно включать в HTML следующими способами:
Используя ссылку в HTML, а сами CSS размещать в отдельном файле:
или:
@import "style.css";
Непосредственно в HTML-документ:
body {
color: red;
}
Непосредственно в элемент:
Рассказ о том, как вредно красить батареи
Наиболее полно поддерживают стандарт CSS браузеры, которые работают на Gecko (Mozilla Firefox и др.), WebKit (Safari, Arora, Google Chrome) и Presto (Opera) .
Браузер Internet Explorer 6 поддерживает CSS не полностью.
Internet Explorer 7 значительно повысил уровень поддержки CSS, однако все еще содержит ошибки.
В Internet Explorer 8 применяется новый движок, который полностью поддерживает CSS 2.1 и частично CSS 3.
Чтобы проверить поддержку браузером различных частей стандарта CSS был разработан тест Acid.
В стандартах CSS от Консорциума W3C используется модель, в которой свойством width определяется ширина содержимого блока без учета отступов и рамок. В ранних версиях Internet Explorer (4 и 5) была реализована собственная модель, в которой параметром width определяется расстояние между рамками блока с учетом отступов (padding) и рамок (border).
В разрабатываемом стандарте CSS3 для решения этой проблемы ввели свойство box-sizing, со значениями content-box, указывающим на использование стандартной модели W3C, и border-box для использования модели IE 5.
В браузере Mozilla, при поддержке этого свойства, под своим рабочим названием -moz-box-sizing, было введено еще одно значение - padding-box, т.е. при создании третьей блочной модели, в которой width является размером содержимого и отступов блока без учета рамки.
Различия в реализации CSS разными браузерами заставили разработчиков искать решения, при которых все браузеры будут отображать страницы одинаково. CSS-фильтры (еще называют CSS-хаками) позволили выборочно применять или нет стили к разным элементам.
Другим способом выборочного применения правил для Internet Explorer стала безопасность.
Все поддерживаемые более ранние версии Internet Explorer были уязвимыми: при обработке браузером каскадных таблиц могла возникнуть неинициализированная память, используемая в дальнейшем для удаленного запуска на компьютере пользователя вредоносного кода