Переместить метку флажка влево на пользовательский флажок начальной загрузки - PullRequest
0 голосов
/ 18 января 2019

У меня есть флажок

<div class="custom-control custom-checkbox custom-control-inline">
   <input type="checkbox"  id="location"  v-model="checkedLocations"   value="location" name="customRadioInline1" class="custom-control-input">
   <label class="custom-control-label" for="location"> Option 1</label>
</div>

Как переместить метку для отображения слева? Я попытался изменить порядок, но он просто нарушает функциональность флажка.

    <div class="custom-control custom-checkbox custom-control-inline">
         <label class="custom-control-label" for="location2"> Option 2</label>
        <input type="checkbox"  id="location2"  value="location2" name="custom2" class="custom-control-input">
   </div>

CODEPEN Ссылка для показа обоих примеров

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Попробуйте: Скрипка

<div style="margin:20px;">
  <div class="custom-control custom-checkbox custom-control-inline">
    <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">

    <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>

CSS:

.custom-checkbox {
  padding-left: 0;
}

label.custom-control-label {
  padding-right: 1.5rem;
}

.custom-control-label::before,
.custom-control-label::after {
  right: 0;
  left: auto;
}
0 голосов
/ 18 января 2019

Флажок не фактический <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, и мне пришлось переквалифицировать селектор, чтобы он работал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...