Jump to content
  • 0

Реализация баттона с чекбоксом в Bootstrap 4


mstdmstd
 Share

Question

Всем привет,

На сайт с Bootstrap v4.0.0-alpha.6 пытаюсь перенести реализацию баттона с чекбоксом из Bootstrap 3.3
live
там логин по умолчанию - кнопка рядом с инпутом для загрузки картинок
Код :

<div data-toggle="buttons" class=" ">
<label class="btn btn-primary btn-sm padding_sm" aria-pressed="false">
<input class="only_checkbox" value="1" autocomplete="off" id="cbx_clear_image" name="cbx_clear_image" type="checkbox">
<span class="glyphicon glyphicon-ok" aria-hidden="true"></span>Clear
</label>
</div>

С определением only_checkbox в style:
 

input.only_checkbox:not(:checked) + .fa-check {
visibility: hidden !important;
margin: 0 !important;
background-color: red !important;
}

input:not(:checked) + .fa-check {
visibility: hidden !important;
}


Чекбокс отображается но не переключается...

Или в 4 надо как-то иначе?

Спасибо!

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Выложил старый проект, откуда и был взят этот код и где работает
войти на
login
с логином demo@com.ua / 111111
Потом перейти на
page
рядом с картинкой есть чекбокс для пометки “Clear”

Я что-то упустил при переносе на 4й или там какие-то нюансы дополнительно?
 

Link to comment
Share on other sites

  • 0


Спасибо, вижу разные классы:
Я переделал fa-check и в коде и в стилях:
 

<div data-toggle="buttons" class=" ">
<label class="btn btn-primary btn-sm padding_sm" aria-pressed="false">
<input class="only_checkbox" value="1" autocomplete="off" id="cbx_clear_image" name="cbx_clear_image" type="checkbox">
<span class="fa fa-check" aria-hidden="true"></span>Clear
</label>
</div>

app.css:

input.only_checkbox:not(:checked) + .fa-check {
  visibility: hidden !important;
  margin: 0 !important;
  background-color: red !important;
}

input:not(:checked) + .fa-check {
  visibility: hidden !important;
}

Но по-прежнему не работает.Я еще что-то упустил?
 

Link to comment
Share on other sites

  • 0

а font-awesome включен вообще? если нет то для .fa-check   нужно задать ширину, высоту и отображение inline-block

+ уберите вы все эти :not 

сделайте   

input.only_checkbox + .fa-check{

  visibility: hidden;

}

input.only_checkbox:checked + .fa-check{

  visibility: visible;

}

и эту хрень тоже убирайте

input:not(:checked) + .fa-check {
  visibility: hidden !important;
}

задайте всем элементам формы класс "form-control"  например, с ним и работайте.  для чекбоксов ещё какой нибудь   __checkbox

и в итоге обращение к чекбоксам будет 

.class_form   .__checkbox{



}

не надо названия тегов везде лепить, это стоит делать только для увеличения приоритета иерархии

Link to comment
Share on other sites

  • 0


Я пытался следовать Вашим срветам но выяснил что и в моем первоначальном случае
и в вашем надо было убрать обертку toggle="buttons"
Я вывожу 2 кнопки

{{--<div data-toggle="buttons" class=" ">--}}
<label class="btn btn-primary btn-sm padding_sm">
<input class="only_checkbox" value="1" autocomplete="off" id="cbx_clear_image" name="cbx_clear_image" type="checkbox">
<span class="fa fa-check" aria-hidden="true"></span>Clear
</label>
{{--</div>--}}

<hr>
<hr>
{{--<div data-toggle="buttons" class=" ">--}}
<label class="btn btn-primary btn-sm padding_sm">
<input class="form-control __checkbox" value="1" autocomplete="off" id="cbx_clear_image" name="cbx_clear_image" type="checkbox">
<span class="fa fa-check" aria-hidden="true"></span>Clear
</label>
{{--</div>--}}
<hr>


Со стилями

.form-control .__checkbox + .fa-check{
visibility: hidden;
}

.form-control .__checkbox:checked + .fa-check{
visibility: visible;
}



input.only_checkbox:not(:checked) + .fa-check {
visibility: hidden !important;
margin: 0 !important;
background-color: red !important;
}

input:not(:checked) + .fa-check {
visibility: hidden !important;
}


И теперь чекбокс переключается но осталось убрать оригинальный чекбокс который прячется с оберткой
toggle="buttons"...


А как это совместить ?
 

Link to comment
Share on other sites

  • 0

По-прежнему ищу решение
Я переделал пример с тем чтобы в зависимости от параметры убирать div вокруг чекбокса

@if( !empty($debug) and $debug == 9 )
<div data-toggle="buttons" class=" ">
@endif
<label class="btn btn-primary btn-sm padding_sm checked">
<input class="only_checkbox" value="1" autocomplete="off" id="cbx_clear_image" name="cbx_clear_image" type="checkbox" checked>
<span class="fa fa-check" aria-hidden="true"></span>Clear
</label>
@if( !empty($debug) and $debug == 9 )
</div>
@endif

<hr>
<hr>
@if( !empty($debug) and $debug == 9 )
<div data-toggle="buttons" class=" ">
@endif
<label class="btn btn-primary btn-sm padding_sm">
<input class="form-control __checkbox" value="1" autocomplete="off" id="cbx_clear_image" name="cbx_clear_image" type="checkbox" >
<span class="fa fa-check" aria-hidden="true"></span>Clear
</label>
@if( !empty($debug) and $debug == 9 )
</div>
@endif


link1
переключатель чекбокс работает но оригинальный чекбокс виден
и
link2
переключатель чекбокс не работает но оригинальный чекбокс не виден

как исправить ?

Спасибо!
 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy