Как сделать чтобы при нажатии css?
Кнопка 160 на 44, при удержании должна темнеть,а если уже нажал и отпустил нужно иногда оставить выбранной, это одно и то же состояниие или разное?
Ваш вопрос
Кнопка 160 на 44, при удержании должна темнеть,а если уже нажал и отпустил нужно иногда оставить выбранной, это одно и то же состояниие или разное?
Во время удержания
Для визуального отклика подходит button:active { background: navy; }. Этот псевдокласс не сохраняет выбор после завершения нажатия.
После отпускания
Для переключателя храните состояние отдельно, например меняйте aria-pressed у настоящей кнопки и оформляйте button[aria-pressed="true"]. Сам CSS не переключает атрибут: это делает обработчик действия. Если по смыслу нужен флажок, используйте checkbox и :checked.
Фокус Не используйте :focus как замену включенному состоянию. Фокус означает цель ввода, поэтому может уйти на другой элемент независимо от выбранной настройки. Для клавиатурной навигации сохраните заметное оформление :focus-visible. Внутри формы у отдельного переключателя обычно нужен type="button", чтобы он случайно не отправил форму.
Для эффекта нажатия задайте button:active { background: navy; }. Для сохраненного выбора используйте отдельное состояние: например, кнопка с aria-pressed="true" и правило button[aria-pressed="true"] { background: navy; }. Атрибут должен обновляться логикой переключения. Focus не заменяет это состояние, поскольку означает текущую цель ввода, а не выбранную настройку.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
4o-mini
4o-mini
Как сделать чтобы при нажатии css?
button:active { background: navy; transform: translateY(1px); }. Базовый цвет и размеры задайте в обычном правиле кнопки.button[aria-pressed="true"].