Не смогла разобраться, как сделать, чтобы при нажатии на кнопку у меня было не одно действие, как в псевдоклассе :active
Допустим, я нажимаю на кнопку: мне надо вывести блок, но он у меня исчезает, если я использую :active.
Нужно, вывести и чтобы он остался, а при повторном нажатии он скрывался. Я так поняла это не CSS, HTML, это JavaScript надо для этого?
Т.е. вам, фактически нужен переключатель, а не кнопка?
Логика действия кнопки: нажал - она зажата, отпустил - она отжалась.
Логика действия переключателя: нажал один раз - вкл, нажал второй раз - выкл.
Так?
Виктор Кожухарь, смотрите. Я хочу сделать, чтобы при нажатии на любой div (пусть будет кнопка), у меня открывался блок и не исчезал, как при :active. Мне нужно использовать переключатели?
MikasaAckerman, Блоки бывают разные, например если мы открываем спойлер, это одно, а если модально окно, то совсем другое и требует другого подхода. Из-за того что ты не даешь конкретики, найдешь какой-то костыль, который будешь применять не по назначению.
Метод называется checkbox hack.
Мы на самом деле используем checkbox и его превосходное свойство работать даже при нажатии на метку, которая с ним ассоциирована. Таким образом мы скрываем сам нативный checkbox, а его метку стилизуем так, как нам надо, хоть в виде кнопки, хоть в виде чего угодно. И вместо :active у кнопки проверяем :checked у чекбокса https://css-tricks.com/the-checkbox-hack/
Ankhena
1. Если label у чекбокса виден, текст контрастен и легко читается, и на него можно навести фокус, то проблем с доступностью не будет.
2. Если правильно стилизовать label, так, чтобы сразу было понятно, нажата кнопка (переключатель) или нет, то и у зрячих людей проблем не будет.