Флажок не фактический <input>
(это скрыто). Это сделано для того, чтобы стилизовать его последовательно кросс-браузер, кросс-устройство, поскольку в настоящее время это невозможно для <input type="checkbox">
.
Вместо этого используется ::before
псевдоэлемент <label>
.
Поэтому вы должны поместить пользовательский класс в оболочку (custom-control-right
в приведенном ниже примере) и добавить CSS, который переопределяет значение по умолчанию:
div.custom-control-right {
padding-right: 24px;
padding-left: 0;
margin-left: 16px;
margin-right: 0;
}
div.custom-control-right .custom-control-label::before,
div.custom-control-right .custom-control-label::after{
right: -1.5rem;
left: initial;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<div style="margin:20px;">
<div class="custom-control custom-checkbox custom-control-inline custom-control-right">
<input type="checkbox" id="location" value="location" name="custom1" class="custom-control-input">
<label class="custom-control-label" for="location"> Option 1</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline custom-control-right">
<input type="checkbox" id="location2" value="location2" name="custom2" class="custom-control-input">
<label class="custom-control-label" for="location2"> Option 2</label>
</div>
</div>
Примечание: вы можете заменить селектор div.custom-control-right
на .custom-control-right
, если этот код анализируется после , вы загружаете Bootstrap css. Однако в SO связанные ресурсы загружаются после кода на панели CSS, и мне пришлось переквалифицировать селектор, чтобы он работал.