Великий Путь Вебмастера от идеи до интернет бизнеса
Блог Романа Чуешова
Начни зарабатывать в интернете на создании сайтов и блогов

Учимся применять в bootstrap 3 кнопки radiobutton для создания пользовательского интерфейса

 

Доброго времени суток, любители веб-разработки и мои дорогие подписчики. Сегодняшняя статья будет посвящена разбору Bootstrap radiobutton.

Я во всех подробностях расскажу вам, что это за кнопки и для чего их обычно используют в пользовательском интерфейсе, перечислю все способы их создания, объясню роль каждого ключевого слова в коде и конечно же для наглядности приведу в пример несколько небольших приложений. Ну что ж, приступим к работе!

Что за странные кнопки и зачем они нужны?

Давайте вспомним те ситуации, когда при установке какого-либо программного продукта вам нужно выбрать сам способ установки. Из предложенных вариантов вы выбираете один наиболее подходящий и отмечаете его, нажав на круг слева от описания способа. Область круга закрашивается.

Теперь вспомните другую ситуацию. При посещении некоторых сайтов перед вами всплывает окошко с опросом, где вам необходимо указать свой пол и возраст. Там из предложенной однотипной группы вариантов вы выбираете один подходящий ответ.

Все это и является radio button-ами. Таким образом, радиокнопка – это особый вид кнопки, которая создается и функционирует в единственном экземпляре или (в основном) внутри определённой группы похожих элементов, позволяя при этом выбрать один единственный вариант ответа.

Варианты создания Radio Buttons

Во фреймворке Bootstrap данный вид кнопок вошел в раздел Input groups. Все элементы данной группы расширяют возможности форм и обязательно создаются внутри непарного тега <input>.

Radio Buttons можно реализовать несколькими способами:

  • В виде кнопок, используя класс .btn- group;
  • В привычном виде при помощи класса .form- check;
  • Внутри класса .input-group.

При этом отличаться они будут только внешним видом, а вот сама реализация инструмента в коде будет практически идентичной.

Стоит также сразу сказать, что при выборе определенного варианта у отмеченного radiobutton-а появляется атрибут «checked», который определяет текущее состояние объекта. Он функционирует так же, как и атрибут «selected» в списках, известных под названием Select List.

Radiobuttons в виде кнопок

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

Запомните! Состояние «checked» будет обновляться только при выполнении сложного события «click». Если же необходимо выбрать другой метод обновления, то к классам тега <label> стоит дописать .active.

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
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Радиобаттоны в виде обычных кнопок</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
 
<div class="container">
 
<div class="btn-group" data-toggle="buttons">
  <label class="btn btn-warning active">
    <input type="radio" name="radioOption" id="Value1" autocomplete="off" checked>Вариант 1
  </label>
  <label class="btn btn-warning">
    <input type="radio" name="radioOption" id="Value2" autocomplete="off"> Вариант 2
  </label>
  <label class="btn btn-warning">
    <input type="radio" name="radioOption" id="Value3" autocomplete="off"> Вариант 3
  </label>
</div>
</div>
 
</body>
</html>

Использование привычного класса form-check

В этом приложении я создал четыре кнопки стандартного вида и изменил цвет текста при помощи css. Обратите внимание на четвертый вариант ответа. Он недоступен для выбора. Такой прием стал возможным из-за указания ключевого слова и одноименного класса «disabled».

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
39
40
41
42
43
44
45
46
47
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Стандартный вид</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  <style>
  h2 {color: #191970;}
  label { color: #6A5ACD;}
  </style>
</head>
<body>
 
<div class="container">
<h2>Чем вы планируете заняться сегодня вечером?</h2>
<div class="form-check">
  <label class="form-check-label">
    <input class="form-check-input" type="radio" name="radioOptions" id="radioOption1" value="option1" checked>
    Уже запланировал(а) встречу с друзьями. Будем веселиться!
  </label>
</div>
<div class="form-check">
  <label class="form-check-label">
    <input class="form-check-input" type="radio" name="radioOptions" id="radioOption2" value="option2">
    Займусь самообразованием. 
  </label>
</div>
<div class="form-check">
  <label class="form-check-label">
    <input class="form-check-input" type="radio" name="radioOptions" id="radioOption3" value="option3">
    Устрою себе отдых. Скорее всего посмотрю фильм или прочту книгу.
  </label>
</div>
<div class="form-check disabled">
  <label class="form-check-label">
    <input class="form-check-input" type="radio" name="radioOptions" id="radioOption4" value="option4" disabled>
   Вечер прошел и я уже лег спать.
  </label>
</div>
 
</div>
 
</body>
</html>

Если же вам необходимо варианты ответа разместить в одну строку, то этого можно добиться с помощью класса .form-check-inline в элементе <label> и удалением блоков

<div class="form-check"> … </div>

или же простым размещением всех input-ов c label-ами в одном таком div-е.

Работа с группой инпутов

Некоторые заказчики требуют оформление форм с помощью сгруппированных элементов. Это выглядит следующим образом: одна часть объекта – это кнопка или иконка, а вторая – текстовое поле. При этом они могут смещаться или меняться местами.

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

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
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Стандартный вид</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
 
</head>
<body>
 
<div class="container">
<h2>Вы согласны подписаться на мой блог?</h2>
<div class="input-group">
      <span class="input-group-addon">
        <input type="radio">
      </span>
      <input type="text" class="form-control" value="Да, я согласен(на).">
    </div>
</div>
 
</body>
</html>

Надеюсь, текущая публикация была полезной. Жду вас в сообществе моих подписчиков. Не забывайте делиться ссылками на интересные статьи с коллегами и друзьями. До встречи! Пока-пока!

С уважением, Роман Чуешов

Прочитано: 989 раз
Этот блог уже читают
читай и ты!
Оставить коментарий
:p :-p 8) 8-) :lol: =( :( :-( :8 ;) ;-) :(( :o:
  • Александр

    Спасибо за интересную статью.

    18.02.2017 в 23:24
    • Роман

      Пожалуйста, Александр.

      21.02.2017 в 07:05
  • Тим

    Как же тебя жёстко наебали с дизайном сайта!

    15.10.2018 в 17:58
  • Антон

    Добрый день! Меня зовут Антон.

    Меня заинтересовал ваш блог romanchueshov.ru.

    Я готов за него предложить 15 000 рублей, исходя из предварительной оценки. По факту изучения статистики, возможно, получится пересмотреть предложение в большую строну. Если интересно мое предложение — жду вашего ответа.

    06.09.2021 в 16:46