Css уже нажатая кнопка

Кнопка, которая при нажатии оставалась «нажатой»

Хочу сделать css кнопку которая при нажатии оставалась «нажатой» (т.е. active). Искал в интернетах, нашел что это можно сделать с помощью JS (onclick и т.п.). Я пробовал , но не смог.
Кто может помочь или подсказать?

Необходимо, чтобы при нажатии на кнопку «Регистрация» Выводилось сообщение: «Точно отправить форму?».
Возник вопрос, у меня есть форма, в которой необходимо заполнить поля и в ней происходит проверка.

При нажатии на кнопку «Всем привет» вывести сообщение `alert(«привет»)` кнопку удалить и добавить новую кнопку.
как сделать чтобы при нажатие на кнопку всем привет выводилось сообщение alert("привет") кнопка.

При нажатии на кнопку «Сбросить » не запускается функция clear()
При нажатии на кнопку "Сбросить " не запускается функция clear() <!doctype html> <head> .

При нажатии кнопки выводить сообщение «Товар добавлен в корзину.»
Код кнопки . В данном коде менять ничего нельзя, так как код генерируется iikostyle <span.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
 html lang="en"> head> meta charset="UTF-8"> title>Documenttitle> head> style> .css-button { display: inline-block; padding: 1em 3em; background-color: #0f0; cursor: default; } .css-button-pressed { display: inline-block; padding: 1em 3em; background-color: #0f0; box-shadow: inset 0 0 20px #000; } style> body> div class="css-button"> Click me! div> body> script src="jquery-3.3.1.min.js"> script> script> $(function() { $(".css-button").click(function() { $(this).toggleClass("css-button-pressed"); }); }); script> html>

Эксперт JSЭксперт HTML/CSS

ЦитатаСообщение от GRO_UA Посмотреть сообщение

input type="checkbox" class="btn-chk" id="btn"> label for="btn" class="btn">Click me!/label>
1 2 3 4 5 6 7 8 9 10 11 12 13
.btn{ display: inline-block; padding:5px; border:1px solid black; background-color:#eee; cursor:pointer; } .btn-chk{ display: none; } .btn-chk:checked + .btn{ background-color:#ccc; }

Эксперт JSЭксперт HTML/CSS

Если нужно только визуально, то можно не подключать JQuery. И даже нативный JS можно не использовать — https://codepen.io/qwerty_wasd/pen/xJbrzJ

input id="button" type="checkbox"/> label for="button">Кнопка/label>
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#button{ position:absolute;clip:rect(0,0,0,0); } label[for="button"]{ border:1px solid #000; border-radius:5px; padding:10px; background:#009688; box-shadow:inset -5px -5px 45px 0px rgba(122,122,122,0.6),inset -3px -3px 10px 0px rgba(0,0,0,0.6); cursor:pointer; } #button:checked ~ label[for="button"]{ box-shadow:inset 5px 5px 45px 0px rgba(122,122,122,0.6),inset 3px 3px 10px 0px rgba(0,0,0,0.6); }

Конечно при нажатии на кнопку, что должно происходить, иначе зачем она нужна. Можно повесить на неё обработчик.

document.querySelector('label[for="button"]').addEventListener('click',function(){ //ваш код })

спасибо всем, буду пробовать=)

Добавлено через 22 часа 33 минуты
не ребят, не помогло
Вот мой код (знаю что корявый)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
html> head> title>Print Work/title> link rel="stylesheet" type="text/css" href="style.css"> link rel="icon" href="images/iconka.png"> /head> body> div class="button">/div> script src="JS.js">/script> /body> /html>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
body{ height: 100%; background: linear-gradient(45deg, rgba(34, 101, 163, .5), rgba(103, 0, 31, .6) ), url(images/fon.jpg); } /*.wrap */ .button { width: 70px; height: 70px; border-radius: 50%; margin-left:20px; margin-top:20px; transition: 0.45s ease-in-out; background: radial-gradient(farthest-side ellipse at top left, white, #aaaaaa); box-shadow: inset 0 -3px 10px rgba(140, 140, 140,1), inset 0 3px 10px rgba(0,0,0,.4), 0 2px 4px rgba(0,0,0,.9); } .button:hover { background: radial-gradient(farthest-side ellipse at top left, white, #c4c2c2); } .button:active { background: url("images/icon.png") , radial-gradient(farthest-side ellipse at top left, #eb7fff, #c56bd6); transform: rotate(360deg); box-shadow: 0 0px 10px rgba(0,0,0,.5) inset, 0 2px 50px rgba(0,0,0,.5) inset, 0 2px 10px rgba(255,255,255,.1);

Вот эту анимированную кнопку хотелось бы оставить в состояние «.active «

document.querySelector('button').addEventListener('click',function(){ alert('he work!') })

В дальнейшем с помощью JS хотелось бы вызвать анимацию основного меню (если это возможно).
Ну, типо, нажимаем на кнопку вылезает меню. Нажимаем еще раз, меню «скручивается» обратно .

Источник

Состояния кнопок

Любая кнопка, если она не заблокирована, может находиться в определённых состояниях, которые связаны с соответствующими псевдоклассами:

Далее рассмотрим эти состояния подробнее.

Активная кнопка

Это состояние возникает, когда на кнопку нажали, но ещё не отпустили (через клавишу мыши или палец на смартфоне). Для изменения стиля активной кнопки к селектору button или соответствующему классу добавляется псевдокласс :active. Его задача показать пользователю, что кнопка прореагировала на нажатие.

В примере 1 к кнопке добавлена тень через свойство box-shadow. У псевдокласса :active тень убирается, а сама кнопка сдвигается вниз и вправо на величину тени. Тем самым при щелчке по кнопке возникает эффект её утопления.

Пример 1. Использование :active

Плавность «хода» кнопки достигается через свойство transiton, которое устанавливает время анимации. Если это свойство убрать из кода CSS, то кнопка будет смещаться мгновенно.

Фокус

Фокусом в HTML называется выбор элемента и его готовность взаимодействовать с пользователем. К примеру, фокус на текстовом поле позволяет писать в этом поле текст при помощи клавиатуры. Фокус на переключателе даёт возможность через пробел ставить и убирать галочку. В общем, фокус показывает пользователю, какой элемент в данный момент активен, и даёт пользователю возможность взаимодействовать с этим элементом через клавиатуру

Кнопка обычно получает фокус, когда на клавиатуре несколько раз нажимают клавишу Tab , по очереди переходя от одного элемента к другому. Вокруг кнопки с фокусом по умолчанию отображается синий контур (рис. 1).

Кнопка, получившая фокус

Рис. 1. Кнопка, получившая фокус

Используя псевдокласс :focus и добавляя его к селектору button или соответствующему классу, можно установить стиль кнопки с фокусом. В примере 2 вокруг кнопки добавляется контур жёлтого цвета через свойство outline.

Пример 2. Использование :focus

Если вместе с псевдоклассом :focus добавляется :active , то для правильной работы важно сохранить их порядок в коде CSS:

Кнопка при наведении курсора

Псевдокласс :hover отвечает за стиль кнопки при наведении на неё курсора мыши. У кнопки таким образом допустимо менять цвет фона, текста и другие параметры. Сама смена происходит мгновенно и для плавности можно добавить свойство transition, указав желаемое время перехода. В примере 3 при наведении на кнопку у неё плавно, в течение полсекунды, меняется цвет фона с тёмного на жёлтый.

Пример 3. Использование :hover

Свойство transition у класса .btn работает в обе стороны — цвет фона меняется плавно при наведении на кнопку курсора и при его уведении. Если transition перенести из класса .btn в селектор .btn:hover , то при наведении на кнопку цвет фона будет меняться плавно, а при уведении вернётся к исходному значению резко.

При наличии других псевдоклассов опять же важен их порядок в CSS. :hover идёт всегда первым, затем уже добавляется :focus и : :active .

Итоги

  • Кнопка может находиться в трёх состояниях: активная кнопка; получившая фокус; на кнопку навели курсор мыши.
  • За стиль активной кнопки отвечает псевдокласс :active.
  • За стиль кнопки, получившей фокус, отвечает псевдокласс :focus.
  • За стиль кнопки, на которую навели курсор мыши, отвечает псевдокласс :hover.
  • Важен порядок написания этих псевдоклассов в CSS. :hover идёт первым, :active пишется последним:
    1. :hover
    2. :focus
    3. :active

Создайте кнопку, чтобы при наведении на неё курсора мыши она меняла цвет фона и рамки (рис. 1). Обратите внимание на следующие моменты:

  • используется жирный шрифт;
  • к тексту добавлена небольшая полупрозрачная тень;
  • у самой кнопки имеется внутренняя тень;
  • время смены цветов установите в полсекунды.

Создайте кнопку, чтобы при наведении на неё курсора мыши она плавно меняла цвет фона и текста, как показано на рис. 1.

Создайте кнопку, чтобы при щелчке у неё исчезала линия снизу и кнопка сдвигалась вниз, как показано на рис. 1.

См. также

  • :focus для полей формы
  • :focus на мобильных устройствах
  • outline
  • outline-color
  • outline-offset
  • outline-style
  • outline-width
  • Анимация ссылок при наведении
  • Виды ссылок
  • Всплывающая подсказка
  • Использование :hover
  • Нормальное позиционирование
  • Переходы с помощью :hover
  • Подсветка строк и колонок таблицы
  • Псевдокласс :active
  • Псевдокласс :focus
  • Псевдокласс :focus-within
  • Псевдокласс :hover
  • Псевдоклассы в CSS
  • Работа с типографикой
  • Свойство border
  • Селекторы CSS
  • Сочетание с псевдоклассами
  • Типы ссылок

Рецепты

Источник

Стилизуем кнопки правильно

Кнопки есть практически в любом приложении. В их роли могут выступать самые разные элементы — собственно кнопки, ссылки и даже простые спаны. В любом случае важно правильно их оформить. В этом руководстве мы займемся созданием CSS-компонента кнопки.

Сброс стилей элемента

Выбор правильного элемента имеет несколько преимуществ: это SEO-friendly и делает ваш сайт более доступным при работе с клавиатуры и для скринридеров.

Однако разработчики редко используют элемент . На большинстве сайтов кнопки представлены тегами , или . В чем причина такой нелюбви?

  • Незнание. Некоторые разработчики даже не догадываются, что тег button можно использовать вне форм.
  • Сложности стилизации. У кнопок очень много стилей по умолчанию, которые мешают созданию кастомного дизайна.

К счастью, у нас есть CSS reset. Давайте сбросим стили кнопки и сделаем ее похожей на обычный текст:

Минус этого подхода заключается в том, что стиль сбросился у ВСЕХ кнопок, и теперь посетитель сайта не сможет опознать их на странице.

Можно воспользоваться препроцессором (SCSS) и написать миксин для использования в нужных местах:

Создание CSS-компонента кнопки

Теперь, когда мы удалили все лишнее, давайте определим собственные стили для кнопки. Создадим для этого отдельный класс .btn , который можно будет указать и для button , и для a , и для любого другого элемента.

Внимание: при разработке CSS-компонента кнопки важно учитывать, что он может быть применен к ссылкам. Значит, необходимо изменить также дефолтные свойства ссылок.

Избегайте использования для кнопок цветов с малым контрастом. Часть ваших пользователей может иметь проблемы со зрением, а другая изучает сайт в неблагоприятных условиях (например, на телефоне под светящим солнцем) — не затрудняйте им жизнь.

Стилизация различных состояний

Кнопка уже выглядит неплохо, но кое-чего не хватает. Это интерактивный элемент, имеющий несколько состояний. Мы должны стилизовать и их.

У браузеров есть собственные дефолтные стили для состояний :focus (фокус на кнопке) и :active (нажатие), но часть из них мы уже сбросили. Не забудем также про состояние :hover (наведение курсора).

  • Для нажатой кнопки создадим олдскульный эффект «утопления» с небольшим изменением насыщенности.
  • При наведении курсора поменяем местами цвета фона и текста и добавим рамку.
  • Для обозначения фокусировки используем такой же стиль.

Обратите внимание: стили фокуса очень важны. Многие пользователи по разным причинам пользуются клавиатурой для навигации по странице. Только стилизованный :focus помогает им понять, где они находятся в данный момент.

Только после того как мы позаботились о собственном оформлении фокуса можно убрать у кнопки дефолтные браузерные стили ( outline ).

Разбираемся с «липким» фокусом

Осталось решить еще одну небольшую проблему.

В ряде браузеров когда вы кликаете на ссылку или кнопку, она получает два псевдокласса: :active и :focus .

:active убирается сразу после того, как вы перестали нажимать на кнопку мышки или трекпад. Но :focus зачастую остается до тех пор, пока вы не кликнете на какой-нибудь другой элемент страницы.

Это поведение можно пофиксить с помощью нового псевдокласса :focus-visible.

Это свойство еще не принято официально, но идея заключается в том, что состояние :focus-visible устанавливается для элемента только при получении фокуса с клавиатуры (а не при клике).

При необходимости можно использовать JS-полифилл.

Давайте разделим состояния :hover и :focus в нашем компоненте:

Теперь подключим полифилл focus-visible.js. Он добавит элементу body класс js-focus-visible . Используем его, чтобы удалить тень с элементов, у которых нет класса focus-visible (то есть тех элементов, на которых сфокусировались не с клавиатуры):

.js-focus-visible .btn:focus:not(.focus-visible)

Кажется, было бы проще установить стили только для .focus-visible элементов, однако, так мы лишимся фоллбэка на тот случай, если скрипт не сработает.

Источник

Читайте также:  Access variable in class java
Оцените статью