Глиф Учебники

Урок 6. Основы CSS — подключение, селекторы, цвета, шрифты

Курс «HTML и CSS» · урок 6 из 10 · 5 минут чтения

HTML описывает содержимое страницы, CSS — её внешний вид. Один файл стилей может оформлять сразу все страницы сайта: поменяли цвет заголовков в одном месте — он сменился везде.

Как устроено правило

CSS
h1 {
  color: darkblue;
  font-size: 32px;
}
h1 { color : darkblue ; font-size : 32px ; } h1 селектор: какие элементы color свойство: что меняется darkblue значение ; конец объявления объявление в { }
Правило для h1 состоит из селектора и фигурных скобок с объявлениями, а каждое объявление — это свойство, двоеточие, значение и точка с запятой в конце.

Комментарий в CSS — между /* и */. Комментария через // в CSS нет.

Три способа подключить CSS

Отдельный файл — основной способ. Создайте рядом со страницей папку css, в ней файл style.css, а в <head> страницы добавьте ссылку на него:

HTML
<head>
  <meta charset="utf-8">
  <title>Рецепты</title>
  <link rel="stylesheet" href="css/style.css">
</head>

Путь в href пишется так же, как путь к картинке: относительно страницы (подробно — в уроке Картинки и пути к файлам).

Тег <style> в <head> — стили только для этой страницы:

HTML
<style>
  p {
    color: #333;
  }
</style>

Атрибут style у элемента — стиль для одного элемента: <p style="color: red;">. Так удобно что-то быстро проверить, но оформлять сайт так неудобно: каждый раз придётся искать стиль по всем страницам.

Селекторы

CSS
/* все абзацы */
p {
  line-height: 1.5;
}

/* элементы с классом note */
.note {
  background-color: lightyellow;
}

/* элемент с id="top" */
#top {
  border-bottom: 1px solid gray;
}

/* ссылки внутри nav */
nav a {
  color: white;
}

/* сразу несколько селекторов */
h1, h2, h3 {
  font-family: Georgia, serif;
}

/* ссылка под указателем мыши */
a:hover {
  color: red;
}

Класс — главный инструмент. Он пишется в HTML атрибутом class, а в CSS — с точкой в начале:

HTML
<p class="note">Занятие переносится.</p>
<p class="note important">Взять с собой краски.</p>

У элемента может быть несколько классов через пробел, и один класс может стоять у скольких угодно элементов. id (#top) на странице единственный, поэтому для оформления обычно хватает классов.

Имена классов чувствительны к регистру: .Note и .note — разные классы. Пишите их латиницей, маленькими буквами, слова — через дефис: .main-menu.

Частые псевдоклассы — состояния элемента: :hover (под мышью), :focus (в фокусе, например поле, в котором курсор), :first-child (первый среди соседей), :nth-child(2n) (каждый второй).

Каскад и наследование

Если к элементу подходят несколько правил, побеждает:

  1. Более точный селектор: id сильнее класса, класс сильнее тега.
  2. При равной точности — то правило, что написано ниже (или подключено позже).
CSS
p {
  color: black;
}
.note {
  color: green;
}
p {
  color: blue;
}

Обычный абзац будет синим (последнее правило для p сильнее первого), а <p class="note"> — зелёным: класс точнее тега, где бы он ни стоял.

<p> Абзац p { color: blue; } ниже в файле p { color: black; } <p class="note"> Абзац .note { color: green; } класс p { color: blue; } p { color: black; } Точность селектора p тег < .note класс < #top id
Для обычного p из двух правил с селектором p побеждает нижнее, и абзац синий, а для p с классом note побеждает правило .note, потому что класс точнее тега, а id точнее класса.

Наследование: часть свойств переходит от родителя ко всем вложенным элементам. Цвет и шрифт, заданные для body, получит весь текст страницы. А рамки, отступы и фон не наследуются. Поэтому общие настройки текста задают один раз:

CSS
body {
  font-family: Arial, sans-serif;
  color: #222;
}

Цвета

Один и тот же цвет можно записать по-разному:

CSS
.a { color: red; }
.b { color: #ff0000; }
.c { color: #f00; }
.d { color: rgb(255 0 0); }
.e { color: rgb(255 0 0 / 50%); }
# ff 00 00 красный зелёный синий 255 0 0 две цифры на канал: от 00 до ff (255) тот же цвет #f00 — краткая запись rgb(255 0 0) — три числа red — имя цвета
В записи #ff0000 первая пара цифр ff — красный на полную силу 255, а пары 00 — зелёный и синий, равные нулю; тот же цвет записывается как #f00, rgb(255 0 0) и red.

color — цвет текста, background-color — цвет фона. Подобрать цвет удобно в инструментах разработчика (F12): щелчок по квадратику цвета в стилях открывает палитру.

Размеры

ЕдиницаЧто это
pxпиксели — точный размер
%процент от размера родителя
remво сколько раз больше размера шрифта страницы (обычно 16px): 1.5rem = 24px
emво сколько раз больше размера шрифта элемента (в самом font-size — шрифта родителя)
vw, vhсотая доля ширины и высоты окна браузера: 50vw — половина ширины

Размер шрифта удобно задавать в rem: если посетитель увеличит шрифт в настройках браузера, страница увеличится вместе с ним.

Текст и шрифты

CSS
body {
  font-family: "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.5;
}
h1 {
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
}
.quote {
  font-style: italic;
}

Шрифт, которого нет у посетителя, можно подключить к сайту — об этом справка Как подключить шрифт.

Частые ошибки

Коротко

Проверьте себя

1. Как в CSS выбрать все элементы с class="price"?
2. Куда ставят строку <link rel="stylesheet" href="style.css">?
3. Есть правила p { color: red; } и .note { color: blue; }. Какого цвета будет <p class="note">?
4. Что значит font-family: Georgia, serif;?
5. Как записать полупрозрачный чёрный цвет?