CSS/Справочник
Справочник по каскадным таблицам стилей.
Введение
[править]CSS (англ. Cascading Style Sheets — каскадные таблицы стилей) — формальный язык описания внешнего вида документа, написанного с использованием языка разметки.
Цель создания CSS
[править]CSS используется создателями веб-страниц для задания цветов, шрифтов, расположения отдельных блоков и других аспектов представления внешнего вида этих веб-страниц. Основной целью разработки CSS являлось разделение описания логической структуры веб-страницы (которое производится с помощью HTML или других языков разметки) от описания внешнего вида этой веб-страницы (которое теперь производится с помощью формального языка CSS). Такое разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом. Кроме того, CSS позволяет представлять один и тот же документ в различных стилях или методах вывода, таких как экранное представление, печатное представление, чтение голосом (специальным голосовым браузером или программой чтения с экрана), или при выводе устройствами, использующими шрифт Брайля.
Обзорная история CSS
[править]CSS1
[править]Первая версия CSS1 была принята как рекомендация W3C 17 декабря 1996 года. Она предоставляет пользователю следующие возможности:
- управление способом отображения элемента на странице;
- возможность для элемента задать и запретить обтекание текстом;
- управление размерами элемента;
- управление внешними и внутренними отступами элемента;
- управление вертикальным выравниванием в табличных блоках;
- управление границами элемента: задавать стиль границы, цвет границы и ее ширину;
- управление форматированием нумерованных и ненумерованных списков: можно задать тип маркера, возможность обтекания маркера текстом, а также применить в качестве маркера ненумерованного списка изображение;
- возможность задавать цвет текста и цвет фона элемента;
- возможность задавать в качестве фона элемента изображения, а также позиционирование и повторение этого изображения в фоне;
- управление параметрами шрифта: название шрифта, размер, курсив и жирность;
- управление свойствами текста: выравнивание, отступ первой строки, оформление (подчеркивание, курсив и т. д.). Также предусмотрена возможность изменения регистра текста;
- управление междустрочным интервалом, а также расстоянием между словами и между буквами.
CSS2
[править]12 мая 1998 года была принята как рекомендация W3C вторая версия CSS2. В CSS2 дополнительно предоставляются следующие возможности:
- задавать направление текста в элементе (слева направо или справа налево);
- управлять позиционированием элемента на странице;
- задавать видимую область элемента и обрезать все остальное;
- управлять отображением контента, который выходит за пределы размеров элемента;
- генерировать контент до и после элемента, в том числе и автоматическая нумерация;
- управлять внешним видом курсора;
- управлять положением элементов по оси z (то есть возможность располагать один элемент поверх другого);
- показывать вместо элемента пустое место;
- задавать минимально возможные и максимально возможные размеры элемента;
- указывать расстояние между ячейками таблицы, либо схлопывать их;
- управлять обводкой элемента: задавать ее толщину, тип и цвет;
- указать тип и цвет для каждой границы элемента отдельно;
- задавать фиксированные размеры элементам таблицы;
- управлять внешним видом кавычек, в которые оборачиваются цитаты;
- задавать таблицы стилей для не визуальных носителей: управлять контентом при печати, а также задавать звуковое оформление контента (силу, громкость голоса, длину пауз и т. д.) для голосовых браузеров.
CSS2.1
[править]8 сентября 2009 года была утверждена CSS2.1. Эта версия формировалась в течение более 10-ти лет. Создание CSS2.1 — это попытка привести спецификацию в соответствие со сложившимися реалиями:
- исправлен ряд ошибок CSS2;
- изменились некоторые моменты, реализация которых в подавляющем большинстве браузеров отличается от спецификации CSS2;
- убрали особенности CSS2, которые, в силу того, что не были реализованы, были отвергнуты CSS сообществом;
- удалили фрагменты CSS2, которые будут устаревшими в CSS3;
- добавили некоторые новые значения свойств.
CSS3
[править]Будущее, которое стало реальностью.
На момент написания статьи активно разрабатывается спецификация CSS3. Возможности, которые сулит нам CSS3 значительно превосходят предыдущие версии. Это и анимация, которая ранее ложилась на плечи скриптов, и различные скругления, тени, множественные фоны и прочие вещи, для реализации которых в CSS2 приходилось прилагать значительные усилия.
Преимущества CSS
[править]- управление отображением множества документов с помощью одной таблицы стилей;
- более точный контроль над внешним видом страниц;
- различные представления для разных носителей информации (экран, печать, и т. д.);
- сложная и проработанная техника дизайна.
Кроссбраузерность
[править]Программное обеспечение для создания CSS
[править]Способы подключения CSS к документу
[править]Правила CSS пишутся на формальном языке CSS и располагаются в таблицах стилей, то есть таблицы стилей содержат в себе правила CSS. Эти таблицы стилей могут располагаться как в самом веб-документе, внешний вид которого они описывают, так и в отдельных файлах, имеющих формат CSS. (По сути, формат CSS — это обычный текстовый файл. В файле .css не содержится ничего, кроме перечня правил CSS и комментариев к ним.)
То есть, эти таблицы стилей могут быть подключены, внедрены в описываемый ими веб-документ четырьмя различными способами:
- когда таблица стилей находится в отдельном файле, она может быть подключена к веб-документу посредством тега <link>, располагающегося в этом документе между тегами <head> и </head>. (Тег <link> будет иметь атрибут href, имеющий значением адрес этой таблицы стилей). Все правила этой таблицы действуют на протяжении всего документа;
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
- когда таблица стилей находится в отдельном файле, она может быть подключена к веб-документу посредством директивы @import, располагающейся в этом документе между тегами <style> и </style> (которые, в свою очередь, располагаются в этом документе между тегами <head> и </head>) сразу после тега <style>, которая также указывает (в своих скобках, после слова url) на адрес этой таблицы стилей. Все правила этой таблицы действуют на протяжении всего документа;
<head>
<style type="text/css" media="all">
@import url(style.css);
</style>
</head>
- когда таблица стилей описана в самом документе, она может располагаться в нём между тегами <style> и </style> (которые, в свою очередь, располагаются в этом документе между тегами <head> и </head>). Все правила этой таблицы действуют на протяжении всего документа;
<head>
<style type="text/css">
body {
color: red;
}
</style>
</head>
- когда таблица стилей описана в самом документе, она может располагаться в нём в теле какого-то отдельного тега (посредством его атрибута style) этого документа. Все правила этой таблицы действуют только на содержимое этого тега.
<p style="font-size: 21px; color: green;">Рассказ о том, как вредно красить батареи</p>
В первых двух случаях говорят, что к документу применены внешние таблицы стилей, а во вторых двух случаях — внутренние таблицы стилей.
Для добавления CSS к XML-документу, последний должен содержать специальную ссылку на таблицу стилей. Например:
<?xml-stylesheet type="text/css" href="style.css"?>
Структура CSS
[править]Виды селекторов
[править]Селекторы правила CSS могут быть:
- селекторами элементов;
p {font-family: Garamond, serif;}
- селекторами классов;
.note {color: red; background: yellow; font-weight: bold;}
- селекторами идентификаторов;
#paragraph1 {margin: 0;}
- селекторами атрибутов;
a[href="http://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:yellow;}
- селекторами псевдоэлементов.
p::first-letter {font-size: 32px;}
- Также в CSS существует так называемый универсальный селектор, обозначающий любой элемент, встречающийся в документе. Например,
*
{color: red;}. Перед любым селектором, задающим класс или идентификатор, можно поставить знак универсального селектора, в результате получится эквивалентное выражение, например, .first {…} и*
.first {…} имеют один и тот же смысл.
Свойства и их значения
[править]Свойство background
[править]Характеристики фона элемента веб-страницы
Свойство background-attachment
[править]Примечание:проверить работоспособность.VasjaMirnyj (обсуждение) 17:19, 11 августа 2012 (UTC)
Свойство селектора определяющее возможность перемещения фонового изображения по элементу во время перемещения данного элемента.
Значения:
- fixed — фоновое изображение остается неподвижным на экране монитора во время скроллинга.
- scroll — фоновое изображение перемещается по веб-странице вместе с другими элементами.(Значение по умолчанию)
- inherit — заимствует свойство родителей.
- local — фоновое изображение прокручивается вместе с содержимым элемента, если для элемента доступна прокрутка.
Синтаксис
CSS2.1 background-attachment: scroll;
CSS3 background-attachment: scroll, scroll;
Версия CSS
Значение fixed
[править]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Фон с изображением</title>
<style type="text/css">
body {
background-attachment: fixed; /*Делает фон НЕподвижным*/
background-repeat: no-repeat; /*Одна копия изображения не дает браузеру замостить фон одним изображением*/
background-image: url(http://upload.wikimedia.org/wikipedia/commons/0/04/CroppedISS008-E-5604.jpg); /*Путь к изображению*/
height: 1000px; /*Высота страницы: 1000 пикселей*/
}
</style>
</head>
<body>
<h1>Тест</h1>
<p>Фон с изображением</p>
</body>
</html>
Значение scroll
[править]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Фон с изображением</title>
<style type="text/css">
body {
background-attachment: scroll; /*Делает фон подвижным*/
background-repeat: no-repeat; /*Одна копия изображения*/
background-image: url(http://upload.wikimedia.org/wikipedia/commons/0/04/CroppedISS008-E-5604.jpg); /*Путь к изображению*/
height: 1000px; /*Высота страницы 1000 пикселей*/
}
</style>
</head>
<body>
<h1>Тест</h1>
<p>Фон с изображением</p>
</body>
</html>
Значение inherit
[править]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Фон с изображением</title>
<style type="text/css">
body {
background-attachment: scroll; /*Изучаемое свойство*/
background-repeat: no-repeat; /*Одна копия изображения*/
background-image: url(http://upload.wikimedia.org/wikipedia/commons/0/04/CroppedISS008-E-5604.jpg); /*Путь к изображению*/
height: 1000px; /*Высота страницы 1000 пикселей*/
}
div {/*Слой внутри браузер*/
background-attachment: inherit; /*Изучаемое свойство*/
background-repeat: no-repeat; /*Одна копия изображения*/
background-image: url(http://upload.wikimedia.org/wikipedia/commons/0/04/CroppedISS008-E-5604.jpg); /*Путь к изображению*/
height: 1000px; /*Высота страницы 1000 пикселей*/
margin:100px;/*Отступ слоя от окна браузера*/
}
</style>
</head>
<body>
<div>
<h1>Тест</h1>
<p>Фон с изображением</p>
</div>
</body>
</html>
Значение local
[править]Свойство background-clip
[править]Определяет пространство занимаемое фоном или фоновым изображением.
Значения:
- padding-box — фон или фоновое изображение внутри границ элемента веб-страницы.(Значение по умолчанию)
- border-box — фон или фоновое изображение занимают внутреннее пространство и границы элемента.
- content-box — фон внутри элемента.
Синтаксис
background-clip: padding-box;
Версия CSS
Значение padding-box
[править]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Фон с изображением</title>
<style>
p {
background-clip:padding-box;/*Фон занимает элемент и отступ от элемента(padding)*/
background-color:#006699;/*Цвет фона*/
padding: 20px;/*Отступ от элемента до границы тогоже элемента*/
border-width: 3px;/*Толщина границы*/
border-style:dashed;/*Граница элемента пунктиром*/
}
</style>
</head>
<body>
<p>Пространство занимаемое фоном.</p>
</body>
</html>
Пространство занимаемое фоном.
Значение border-box
[править]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Фон с изображением</title>
<style>
p {
background-clip:border-box;/*Фон занимает элемент и отступ от элемента(padding) и границу элемента(border)*/
background-color:#006699;/*Цвет фона*/
padding: 20px;/*Отступ от элемента до границы тогоже элемента*/
border-width: 3px;/*Толщина границы*/
border-style:dashed;/*Граница элемента пунктиром*/
}
</style>
</head>
<body>
<p>Пространство занимаемое фоном.</p>
</body>
</html>
Пространство занимаемое фоном.
Значение content-box
[править]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Фон с изображением</title>
<style>
p {
background-clip:content-box;/*Фон занимает элемент(width и height)*/
background-color:#006699;/*Цвет фона*/
padding: 20px;/*Отступ от элемента до границы тогоже элемента*/
border-width: 3px;/*Толщина границы*/
border-style:dashed;/*Граница элемента пунктиром*/
}
</style>
</head>
<body>
<p>Пространство занимаемое фоном.</p>
</body>
</html>
Пространство занимаемое фоном.
Свойство background-color
[править]Задаёт цвет фона.
Значения:
- transparent — задаёт прозрачный фон. (Значение по умолчанию)
- inherit — наследует значение у родителя.
- #006699 — значение цвета в шестнадцатеричной системе исчисления.
- red — по названию.
- rgb(214,86,43) — при помощи RGB.
- rgba(255,255,255,.9) — при помощи RGBA.
- hsl(60,100 %,25 %) — при помощи HSL.
- hsla(120,100 %,50 %,0.1) — при помощи HSLA.
Синтаксис
background-color: transparent;
Версия CSS
Свойство background-image
[править]Указывает путь к файлу фонового изображения.
Если одновременно заданы два свойства: background-image и background-color. То в начале устанавливается цвет фона, пока загружается изображение.
Значения:
- url() — в скобках указывают путь к файлу.
- none — элемент не содержит фонового изображения. (Значение по умолчанию)
- inherit — наследует значение у родителя.
Синтаксис
CSS2.1 background-image: url(http://upload.wikimedia.org/wikipedia/commons/0/04/CroppedISS008-E-5604.jpg);
CSS3 background-image: url(http://upload.wikimedia.org/wikipedia/commons/0/04/CroppedISS008-E-5604.jpg), url(http://upload.wikimedia.org/wikipedia/commons/3/3d/Circ-terre.JPG);
Версия CSS