Каскадные таблицы стилей (css) используются для описания внешнего вида документа, написанного языком разметки. Объявление стиля состоит из двух частей: элемента веб-страницы — селектора, и команды форматирования — блока объявления.
h2 {
font-size: 28px;
line-height: 32px;
}
<link media="all" rel="stylesheet" href="css/main.css">
<style>
h2 {
font-size: 28px;
line-height: 32px;
}
</style>
<h2 style="font-size: 32px;">Heading 2</h2>
Селекторы создают правила для форматирования элементов веб-страницы. Селекторами могут быть элементы, их классы и идентификаторы, а также псевдоклассы и псевдоэлементы.
⚑ пример html:
<ul class="main-nav" id="nav">
<li><a href="#">About us</a></li>
<li><a href="#">Team</a></li>
<li><a href="#">Fotos</a></li>
</ul>
ul {
background-color: black;
}
.main-nav {
background-color: black;
}
#id-nav {
background-color: black;
}
.main-nav a {
background-color: black;
}
⚑* пример html:*
<div class=“wrap”>
<p>lorem ipsum</p>
<p>lorem ipsum</p>
<form>
<h3>Form heading</h3>
<p>lorem ipsum</p>
<p>lorem ipsum</p>
<input type=”text”>
<input type=”submit” value=”Submit”>
</form>
</div>
.wrap > p {
font-size: 28px;
}
h3 + p {
font-size: 28px;
}
h3 ~ p {
font-size: 28px;
}
input[type=”text”] {
font-size: 28px;
}
Псевдоклассы — это классы, фактически не прикрепленные к HTML-тегам. Они позволяют применить CSS-правила к элементам при совершении события или подчиняющимся определенному правилу. Примеры псевдоклассов:
:link — не посещенная ссылка;
:visited — посещенная ссылка;
:hover — любой элемент, по которому проводят курсором мыши;
:focus — интерактивный элемент, к которому перешли с помощью клавиатуры или активировали посредством мыши;
:disabled — заблокированные поля форм, т.е., находящиеся в неактивном состоянии;
:not(селектор) — элементы, которые не содержат указанный селектор — класс, идентификатор, название или тип поля формы — :not([type="submit"]);
:checked — выделенные (выбранные пользователем) элементы формы.
Структурные псевдоклассы отбирают дочерние элементы в соответствии с параметром.
:nth-child(odd) — нечётные дочерние элементы;
:nth-child(even) — чётные дочерние элементы;
:nth-child(3n) — каждый третий элемент среди дочерних;
:nth-child(n+2) — выбирает все элементы, начиная со второго;
:nth-child(3) — выбирает третий дочерний элемент;
:first-child — позволяет оформить только самый первый дочерний элемент тега;
:last-child — позволяет форматировать последний дочерний элемент тега;
:only-child — выбирает элемент, являющийся единственным дочерним элементом;
:empty — выбирает элементы, у которых нет дочерних элементов;
::first-letter — выбирает первую букву каждого абзаца;
::first-line — выбирает первую строку текста элемента;
::before — вставляет генерируемое содержимое перед элементом;
::after — добавляет генерируемое содержимое после элемента.
p::before {
content: 'read-this';
display: block;
}
Для более точного отбора элементов для форматирования можно использовать комбинации селекторов:
a[href][title] {
color: red;
}
Один и тот же стиль можно одновременно применить к нескольким элементам. Для этого необходимо в левой части объявления перечислить через запятую нужные селекторы:
p,
span {
color: black;
}
Наследование - механизм, с помощью которого определенные свойства передаются от предка (родителя) к его потомкам. Наследуются свойства, относящихся к текстовому содержимому страницы, таких как color, font, letter-spacing, line-height, list-style, text-align, text-indent, text-transform...
С помощью ключевого слова inherit можно принудить элемент наследовать любое значение свойства родительского элемента. Это работает даже для тех свойств, которые не наследуются по умолчанию.
Каскадирование — это механизм, который управляет конечным результатом в ситуации, когда к одному элементу применяются разные CSS-правила. Существует три критерия, которые определяют порядок применения свойств:
h3 {
font-size: 20px !important;
}
/* tag name - 1 */
p {
font-size: 20px;
}
/* class - 10 */
.content {
font-size: 22px;
}
/* id - 100 */
#content {
font-size: 24px;
}
p {
font-size: 20px;
}
p {
font-size: 22px;
}
Область содержимого — это содержимое элемента, например, текст или изображение.
Внутренний отступ (padding) — это расстояние между основным содержимым и его границей (рамкой). Если для элемента задать фон, то он распространится также и на поля элемента. Внутренний отступ не может принимать отрицательных значений, в отличие от внешнего отступа.
Внешний отступ (margin) — расстояние снаружи элемента от внешней границы рамки до соседних элементов, тем самым разделяя элементы на странице. Внешние отступы всегда остаются прозрачными и через них виден фон родительского элемента.
Значения padding и margin задаются в следующем порядке: верхнее, правое, нижнее и левое.
Граница, или рамка элемента, задаётся с помощью свойства border.
Внешние, внутренние отступы и рамка элемента не являются обязательными, по умолчанию их значение равно нулю. Тем не менее, некоторые браузеры добавляют этим свойствам положительные значения по умолчанию на основе своих таблиц стилей. Очистить стили браузеров для всех элементов можно при помощи универсального селектора:
* {
margin: 0;
padding: 0;
}
Отрицательные значения margin-top/margin-left смещают элемент со своего обычного места.
При сдвиге через margin соседние элементы занимают освободившееся пространство.
Свойство, которое определяет, как элемент должен быть показан в документе.
display: | comment |
---|---|
inline | инлайн (строчный) |
block | блочный |
inline-block | инлайн-блочный |
table | таблица |
flex | флекс |
... | ... |
none | - |
Свойство position позволяет точно задать новое местоположение блока относительно того места, где он находился бы в нормальном потоке документа. По умолчанию все элементы располагаются последовательно один за другим в том порядке, в котором они определены в структуре HTML-документа.
position: | comment |
---|---|
static | Значение по умолчанию, означает отсутствие позиционирования. Элементы отображаются последовательно один за другим в том порядке, в котором они определены в HTML-документе. Используется для очистки любого другого значения позиционирования. |
relative (*) | Относительно позиционированный элемент сдвигается со своего обычного места в разных направлениях относительно границ родительского контейнера, а пространство, которое он занимал, не исчезает. При этом такой элемент может перекрывать другое содержимое на странице. |
absolute (*) | Абсолютно позиционированный элемент полностью удаляется из потока документа и позиционируется относительно границ его блока-контейнера (другого элемента или окна браузера). Блок-контейнер для абсолютно позиционированного элемента — ближайший элемент-предок, значение свойства position которого равно relative. |
fixed (*) | Фиксирует элемент в указанном месте страницы. Блоком-контейнером фиксированного элемента является окно просмотра, то есть элемент всегда фиксируется относительно окна браузера и не меняет своего положения во время прокрутки страницы. Сам элемент при этом полностью удаляется из основного потока документа. |
* - будут работать top, right, bottom, left
В обычном порядке блочные элементы отображаются, начиная с верхнего края окна браузера по направлению к нижнему краю. Свойство float позволяет перемещать любой элемент, выравнивая его по левому или правому краю веб-страницы или содержащего его элемента-контейнера. При этом остальные блочные элементы будут его игнорировать, а строчные элементы будут смещаться вправо или влево, освобождая для него пространство и обтекая его.
float: | comment |
---|---|
none | Значение по умолчанию. Также отменяет любое перемещение для элемента из группы элементов, для которых уже установлено обтекание. |
left | Элемент изымается из нормального потока элементов и позиционируется по левому краю блока-контейнера. |
right | Элемент позиционируется по правому краю блока-контейнера. |
Очистка потока стилями при помощи класса clearfix и псевдокласса :after
.clearfix:after {
content: "";
display: table;
clear: both;
}
CSS-текст представляет набор свойств для форматирования текстового содержимого веб-страниц. Использование CSS-стилей для форматирования текста позволяет придать HTML-элементам желаемый вид, благодаря чему HTML-теги могут применяться только по своему прямому назначению — для определения структуры документа.
Свойство выравнивает строки текста внутри блока по ширине относительно его границ.
p {text-align: left;}
p {text-align: right;}
p {text-align: center;}
Свойство задаёт расстояние между базовыми линиями строк текста, определяя величину, на которую увеличивается или уменьшается высота блока каждого элемента.
h1 {
font-size: 16px;
line-height: 20px;
}
Применяется только к строчным элементам, к изображениям и полям форм. Не выравнивает содержимое блочного элемента.
span {vertical-align: top;}
span {vertical-align: middle;}
span {vertical-align: bottom;}
CSS-шрифты — набор свойств для управления внешним видом текста веб-страниц. Используя различные шрифты для заголовков, абзацев и других элементов, можно задавать определенный стиль письменных сообщений, передавая желаемые эмоции и настроение.
Единицы измерения:
px – абсолютные, чёткие, понятные;
em – относительно размера шрифта;
rem - задаёт размер относительно размера шрифта элемента <html>;
% – относительно такого же свойства родителя;
vw – 1% ширины окна;
vh – 1% высоты окна.
CSS-фон — свойства, добавляющие фон для любого HTML-элемента. Каждый элемент имеет фоновый слой, который может быть прозрачным (по умолчанию), цветной заливкой и изображением. В качестве изображения может выступать градиент или картинка. Для одного элемента можно задать несколько фоновых изображений.
property: | comment |
---|---|
background-color | Свойство устанавливает цветную заливку для любого HTML-элемента. Для блочных элементов цвет фона распространяется на всю ширину и высоту блока элемента, для строчных — только на область их содержимого. |
background-image | Свойство устанавливает изображение в качестве фона для элемента. Фоновым изображением может быть картинка или градиент. |
background-repeat | Свойство определяет, каким образом будет повторяться фоновый рисунок. |
background-position | Свойство управляет точным расположением фонового изображения. Можно определить начальную позицию фонового изображения в виде горизонтальной и вертикальной координат посредством ключевых слов, точных абсолютных и процентных значений. |
background-size | Свойство позволяет масштабировать фоновое изображение по вертикали и горизонтали (background-image). Оно описывает, как изображение будет растягиваться и обрезаться, чтобы полностью закрыть собой фоновую область. С помощью этого свойства изображение также можно уменьшать по ширине и по высоте. |
... | ... |