1 of 16

Язык CSS: основы

@davidobryakov

2 of 16

Что такое CSS?

CSS — язык для описания стилей документа, он как и HTML является декларативным. Для CSS существуют расширения: препроцессоры (SASS, LESS, Stylus) и постпроцессоры (PostCSS), но у современного CSS есть всё необходимое для того, чтобы можно было не использовать препроцессоры.

3 of 16

Декларативность

Так же, как и в HTML — мы формально описываем желаемый результат. Например, если мы хотим получить непрерывную красного цвета рамку вокруг элемента шириной 2 пикселя мы прямо так и напишем:

4 of 16

Языковые конструкции

Основной языковой конструкцией в CSS являются именно стили, которые мы задаём тем или иным элементам. А для привязки к этим элементам используются селекторы. В примере выше — наш селектор будет искать любой элемент с классом "border". Существует несколько разных видов селекторов.

5 of 16

Селекторы

Базовые селекторы:

  • Селектор по тегу (пишется так: div)
  • Селектор по классу (пишется так: .border)
  • Селектор по id (пишется так: #id)

Так же существуют специфичные селекторы, которые могут заглядывать в атрибуты, например селектор input[type="email"] будет искать на странице все поля ввода с типом email.

6 of 16

Селекторы

Более сложные селекторы:

  • * (выбирает ВООБЩЕ ВСЕ ЭЛЕМЕНТЫ на странице)
  • > (выбирает дочерний элемент по отношению к родительскому)
  • ~ (выбирает элементы, которые находятся на этом же уровне вложенности, после указанного элемента, с тем же родителем)
  • + (выбирает элемент, который находится непосредственно после указанного элемента, если у них общий родитель)
  • : (селектор по псевдоклассу, например: ::after, :hover)

7 of 16

Например...

8 of 16

Например...

9 of 16

Например...

10 of 16

Например...

11 of 16

Например...

12 of 16

Например...

13 of 16

Например...

14 of 16

Например...

15 of 16

Например...

16 of 16

Что почитать?

  1. Селекторы MDN (https://developer.mozilla.org/ru/docs/Web/CSS/CSS_Selectors)
  2. Руководство по CSS MDN (https://developer.mozilla.org/ru/docs/Web/CSS/Reference)
  3. Лекция в текстовом формате (https://blog.kantegory.me/frontend-css-basics)