Перейти к содержимому

Как кнопку сделать чекбоксом

  • автор:

Как сделать кнопку зависимую от чекбоксов? [закрыт]

Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

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

Закрыт 4 года назад .

У меня есть таблица в которой в каждой строке по чекбоксу и есть кнопка вне таблицы. Надо чтобы если хоть один чекбокс выбран кнопка была активной — иначе не активной ( disabled ). Проблема в том что disabled это атрибут, а не стиль. Значит через CSS это не сделаешь. Я пытался через jquery повесить на все чекбоксы событие change и в нем менять активность кнопки, но это корявое решение которое не всегда работает почему-то. Есть способ получше? P.S. Забыл уточнить. На этой странице используется Pjax для обновления данных таблицы (проект на Yii2). Возможно из-за него как раз и проблема с рандомно работающими событиями.

Чекбоксы в виде кнопок

В продолжении статьи о стилизации чекбоксов, несколько примеров как стилизовать чекбоксы в кнопки и группы кнопок.

Кнопки

HTML-разметка:
     
Фокус по клавише Tab:
$(window).keyup(function(e) < var target = $('.checkbox-btn input:focus'); if (e.keyCode == 9 && $(target).length)< $(target).parent().addClass('focused'); >>); $('.checkbox-btn input').focusout(function()< $(this).parent().removeClass('focused'); >);
CSS-стили:
.checkbox-btn < display: inline-block; margin: 0 5px 0 0; user-select: none; position: relative; >.checkbox-btn input[type=checkbox] < z-index: -1; opacity: 0; display: block; width: 0; height: 0; >.checkbox-btn span < display: inline-block; cursor: pointer; padding: 0px 10px; line-height: 30px; border: 1px solid #999; border-radius: 4px; transition: background 0.2s ease; >/* Checked */ .checkbox-btn input[type=checkbox]:checked + span < background: #ffe0a6; >/* Focus */ .focused span < box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25); >/* Hover */ .checkbox-btn:hover < color: #666; >/* Active */ .checkbox-btn input[type=checkbox]:active:not(:disabled) + span < background: #d2c5ac; color: #000; >/* Disabled */ .checkbox-btn input[type=checkbox]:disabled + span < background: #efefef; color: #666; cursor: default; >.checkbox-btn input[type=checkbox]:checked:disabled + span
Результат:

Группа кнопок

HTML-разметка:
 
Checkbox #1
Фокус по клавише Tab:
$(window).keyup(function(e) < var target = $('.checkbox-btn-group input:focus'); if (e.keyCode == 9 && $(target).length)< $(target).parent().addClass('focused'); >>); $('.checkbox-btn-group input').focusout(function()< $(this).parent().removeClass('focused'); >);
CSS-стили:
.checkbox-btn-group < display: inline-block; >.checkbox-btn-group:after < content: ""; clear: both; display: block; >.checkbox-btn-group label < display: inline-block; float: left; margin: 0; user-select: none; position: relative; >.checkbox-btn-group input[type=checkbox] < z-index: -1; opacity: 0; display: block; width: 0; height: 0; >.checkbox-btn-group span < display: inline-block; cursor: pointer; padding: 0px 10px; line-height: 30px; border: 1px solid #999; border-right: none; transition: background 0.2s ease; >.checkbox-btn-group label:first-child span < border-radius: 4px 0 0 4px; >.checkbox-btn-group label:last-child span < border-radius: 0 4px 4px 0; border-right: 1px solid #999; >/* Checked */ .checkbox-btn-group input[type=checkbox]:checked + span < background: #ffe0a6; >/* Focus */ .checkbox-btn-group .focused span < box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25); >/* Hover */ .checkbox-btn-group label:hover < color: #666; >/* Active */ .checkbox-btn-group input[type=checkbox]:active:not(:disabled) + span < background: #d2c5ac; color: #000; >/* Disabled */ .checkbox-btn-group input[type=checkbox]:disabled + span < background: #efefef; color: #666; cursor: default; >.checkbox-btn-group input[type=checkbox]:checked:disabled + span

Как создать стилизованные чекбоксы и радио-кнопки

Узнайте, как создать красивые стилизованные чекбоксы и радио-кнопки с помощью HTML, CSS и JavaScript в нашей практической статье!

Interacting with stylized checkboxes and radio buttons.

Алексей Кодов
Автор статьи
2 июня 2023 в 11:29

В этой статье мы рассмотрим, как создать стилизованные чекбоксы и радио-кнопки с помощью HTML, CSS и немного JavaScript. Это поможет сделать ваш сайт более красивым и пользовательским. ��

Основы стилизации чекбоксов и радио-кнопок

Чтобы начать стилизацию, нам нужно сначала создать основной HTML-код для чекбоксов и радио-кнопок. Вот базовый пример:

   

Теперь, когда у нас есть базовый код, давайте перейдем к стилизации.

Стилизация чекбоксов

Чтобы стилизовать чекбоксы, мы должны спрятать оригинальный чекбокс и добавить кастомный элемент, который будет отображать состояние чекбокса.

Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

Шаг 1: Скрыть оригинальные чекбоксы

input[type=»checkbox»]

Шаг 2: Добавить кастомный элемент

  

Шаг 3: Стилизация кастомного элемента

.custom-checkbox

Шаг 4: Изменение стиля при выборе чекбокса

input[type=»checkbox»]:checked + .custom-checkbox

Стилизация радио-кнопок

Стилизация радио-кнопок аналогична стилизации чекбоксов, но с некоторыми различиями.

Шаг 1: Скрыть оригинальные радио-кнопки

input[type=»radio»]

Шаг 2: Добавить кастомный элемент

  

Шаг 3: Стилизация кастомного элемента

.custom-radio

Шаг 4: Изменение стиля при выборе радио-кнопки

input[type=»radio»]:checked + .custom-radio
Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

�� Теперь у вас есть красивые стилизованные чекбоксы и радио-кнопки на вашем сайте!

Не забывайте, что вы также можете добавить различные анимации или изменить цвета и размеры, чтобы сделать их еще более привлекательными для пользователей.

Удачи в веб-разработке и изучении новых техник! ��

Как сделать активацию кнопки после нажатия на checkbox?

Нужно сделать так, чтобы кнопка была активна только после того, как пользователь поставит чекбокс.
Код чекбокса:

 

Все выглядит примерно так.

62fab2345e9e5404723056.png

  • Вопрос задан более года назад
  • 420 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *