Кнопки в CSS
Кнопки — это элементы «сделай это» — отправить, сохранить, дальше. CSS может дать им ясный вид и честную обратную связь при наведении, нажатии, фокусе или отключении. Держите HTML семантичным (button или submit); этот урок про внешний вид и состояния.
Набор для кнопок
📊 Кнопки одним взглядом
| Часть | Повседневная роль |
|---|---|
padding + background + border |
Собрать плотную, читаемую поверхность кнопки |
border-radius |
Смягчить углы (или сделать «таблетку» большим радиусом) |
:hover / :active |
Показать «я интерактивна» и «меня нажали» |
:focus-visible |
Держать видимым кольцо фокуса клавиатуры |
:disabled + cursor |
Приглушить недоступные кнопки; курсор-рука когда можно кликнуть |
Стилизуйте общий .btn (или button), чтобы основные действия на странице выглядели из одной семьи. Padding текстовых полей был в прошлом уроке — здесь одеваем цели клика.
Плотная основная кнопка
Начните с удобного padding, ясного фона, читаемого цвета текста и спокойного border-radius. Предпочтите font: inherit, чтобы кнопка совпадала с соседним текстом.
Базовая основная кнопка
cssbutton,
.btn {
display: inline-block;
padding: 0.65rem 1.1rem;
font: inherit;
font-weight: 600;
color: #fff;
background: #0b5fff;
border: 1px solid #0b5fff;
border-radius: 0.5rem;
cursor: pointer;
}
Hover и active — честная обратная связь
:hover может чуть затемнить или осветлить поверхность. :active должен ощущаться как нажатие — оттенок темнее или крошечный сдвиг — не совсем новая неоновая тема.
Hover и active
cssbutton:hover,
.btn:hover {
background: #094fd6;
border-color: #094fd6;
}
button:active,
.btn:active {
background: #0844b8;
border-color: #0844b8;
}
Фокус, который видно
Никогда не убирайте стили фокуса без замены. :focus-visible рисует ясное кольцо для клавиатуры и держит клики мыши спокойными.
Видимое кольцо фокуса
cssbutton:focus-visible,
.btn:focus-visible {
outline: 2px solid #0b5fff;
outline-offset: 3px;
}
Отключённые кнопки остаются видимыми
Кнопка disabled должна выглядеть недоступной — меньшая непрозрачность или приглушённые цвета — и отвергать курсор-руку. Не прячьте её из макета.
Тон disabled
cssbutton:disabled,
.btn:disabled {
opacity: 0.55;
cursor: not-allowed;
background: #8aa9e8;
border-color: #8aa9e8;
}
Спокойная привычка для кнопок
Держите одну основную оболочку, ясный hover/active, видимое кольцо фокуса и приглушённый disabled. Варианты outline/ghost могут делить тот же padding и радиус, чтобы набор выглядел родственным.
Компаньон outline
css.btn-outline {
color: #0b5fff;
background: transparent;
border: 1px solid #0b5fff;
}
.btn-outline:hover {
color: #fff;
background: #0b5fff;
}
Попробуйте сами
- Стилизуйте основную
buttonс padding, фоном, цветом текста иborder-radius. - Затемните
:hoverи чуть углубите:active. - Добавьте outline
:focus-visible— без гологоoutline: none. - Приглушите
:disabledи поставьтеcursor: not-allowed. - По желанию: добавьте
.btn-outlineс тем же padding и радиусом.
Частые ошибки
outline: noneбез замены фокуса (пользователи клавиатуры теряются)- Крошечный padding, который промахивается мимо тач-целей на телефоне
- Превращать этот урок в стили input/textarea (это были элементы форм)
- Дикий неон на
:hover, ломающий спокойствие бренда - Стилизовать только
aи забывать настоящиеbutton
Кратко
- Padding, фон, граница и радиус собирают плотную поверхность кнопки
:hoverи:activeдают честную обратную связь взаимодействия- Держите видимое кольцо
:focus-visible - Приглушайте
:disabled; используйтеcursor: pointer, когда можно кликнуть - Хром полей оставьте уроку элементов форм; здесь одеваем цели клика
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху