Итоги
В этом уроке мы сделали так, чтобы страница приюта реагировала на посетителей, и узнали, что:
- Вариант — это префикс перед классом, после которого стоит двоеточие. Класс с вариантом действует только в своём состоянии:
hover:bg-orange-600— только пока указатель мыши находится над элементом. Обычные классы элемента при этом остаются. - Каждому классу, который должен действовать только в каком-то состоянии, нужен свой вариант, например
focus-visible:outline-2 focus-visible:outline-orange-500. - Варианты можно соединять:
enabled:hover:bg-orange-600действует, только когда выполнены оба условия. transition-colors,transition-shadowилиtransitionвместе сduration-*делают изменения плавными. Их ставят на элемент без варианта, чтобы изменение было плавным в обе стороны.cursor-pointerпоказывает руку над кнопкой,cursor-not-allowed— перечёркнутый круг.- Preflight убирает рамку и фон у полей форм, поэтому оформляете их вы сами. Атрибут
placeholderпоказывает пример в пустом поле, а вариантplaceholder:задаёт его цвет. - Элементу с фокусом нужен видимый контур для людей, которые пользуются клавиатурой, поэтому никогда не убирайте его без замены:
focus:для полей,focus-visible:для кнопок, сoutline-2,outline-offset-2и цветомoutline-*. - Атрибут
disabledотключает кнопку, а вариантdisabled:придаёт ей вид, по которому это видно. groupна предке иgroup-hover:на элементе внутри него оформляют элемент, когда указатель находится над предком.first:,last:,odd:иeven:оформляют элемент по его положению среди соседних. Их ставят на каждый из соседних элементов.
| Вариант | CSS | Класс действует |
|---|---|---|
hover: | :hover | пока указатель мыши находится над элементом (только на устройствах, которые умеют наводить указатель) |
active: | :active | пока элемент нажимают |
focus: | :focus | пока у элемента есть фокус |
focus-visible: | :focus-visible | пока у элемента есть фокус, который должен быть виден (с клавиатуры) |
disabled:, enabled: | :disabled, :enabled | когда элемент отключён или, наоборот, включён |
placeholder: | ::placeholder | к подсказке в поле |
group-hover: | .group:hover … | пока указатель находится над предком с классом group |
first:, last: | :first-child, :last-child | к первому или к последнему потомку |
odd:, even: | :nth-child(odd), :nth-child(even) | к нечётным или к чётным потомкам |
В следующем уроке, «Адаптивный дизайн», вы познакомитесь с вариантами, которые зависят не от действий посетителя, а от ширины экрана.
Практика: вот новая часть сайта приюта — блок с просьбой о пожертвованиях. Кнопка «Пожертвовать» оформлена, но пока ни на что не реагирует. Используйте то, что вы узнали в этом уроке.
Задание
- 1
Когда указатель мыши находится над кнопкой «Пожертвовать», сделайте её фон на один оттенок темнее (
orange-600) и сделайте это изменение плавным. - 2
Покажите над кнопкой руку, а пока кнопку нажимают — ещё более тёмный фон (
orange-700). - 3
Дайте кнопке оранжевый контур толщиной 2 px на расстоянии 2 px от кнопки, который показывается, только когда кнопка получает фокус с клавиатуры.