Делаем красивые чекбоксы

20.11.2016

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

HTML

<h1>What is your favorite car?</h1>
<form>
  <div class="answer_box">
    <input type="checkbox" id="Mazda">
    <label for="Mazda">Mazda</label>
  </div>
  <div class="answer_box">
    <input type="checkbox" id="Toyota">
    <label for="Toyota">Toyota</label>
  </div>
  <div class="answer_box">
    <input type="checkbox" id="Honda">
    <label for="Honda">Honda</label>
  </div>
  <div class="answer_box">
    <input type="checkbox" id="BMW">
    <label for="BMW">BMW</label>
  </div>
  <div class="answer_box">
    <input type="checkbox" id="Mercedes">
    <label for="Mercedes">Mercedes</label>
  </div>
</form>

CSS

.answer_box {
  padding-left: 40px;
  position: relative;
  cursor: pointer;
  font-size: 24px;
  line-height: 32px;
  margin-bottom: 10px;
}
.answer_box input,
.answer_box label {
  cursor: pointer;
}
.answer_box input[type="checkbox"]{
  display: none;
}
.answer_box:after {
  content: '';
  position: absolute;
  left: 0;
  top: 6px;
  display: block;
  width: 23px;
  height: 20px;
  box-sizing: border-box;
  background: url(images/check.png) 0 -20px no-repeat;
  border-radius: 4px;
}
.answer_box.checked:after{
  background: url(images/check.png) 0 0 no-repeat;
}

IMG

checkbox

JS

$(document).ready(function(){
  $('.answer_box').click(function(e) { 
    // добавляем класс блоку, чтобы сделать красивый чекбокс
    $(this).toggleClass('checked');
    // если данные чекбокса нам нужны при отправке формы, то отмечаем и сам чекбокс
    if ($('input', this).is(':checked'))
      $('input', this).prop('checked', false);
    else
      $('input', this).prop('checked', true);
    e.preventDefault(); 
  });
});

Screenshot

Пример реализации красивого чекбокса вместо стандартного

Не уходи, пока не прочитаешь:

Оставить комментарий