将复选框标签在引导程序自定义复选框上向左移动

JaC*_*hNo 1 html css twitter-bootstrap bootstrap-4

我有一个复选框

<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>
Run Code Online (Sandbox Code Playgroud)

如何移动标签显示在左侧?我尝试过更改顺序,但它破坏了复选框的功能。

    <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>
Run Code Online (Sandbox Code Playgroud)

CODEPEN链接显示两个示例

lof*_*nki 11

答案似乎不适用于custom-switch. 这是一个工作示例。

CSS

div.custom-control-right {
    padding-right: 24px;
    padding-left: 0;
    margin-left: 0;
    margin-right: 0;
}
div.custom-control-right .custom-control-label::after{
    right: -1.5rem;
    left: auto;
}
div.custom-control-right .custom-control-label::before {
    right: -2.35rem;
    left: auto;
}
Run Code Online (Sandbox Code Playgroud)

HTML

<div class="custom-control custom-control-right custom-switch">
    <input type="checkbox" class="custom-control-input" disabled id="customSwitch2">
    <label class="custom-control-label" for="customSwitch2">Right switch element</label>
</div>
Run Code Online (Sandbox Code Playgroud)

提琴手

https://jsfiddle.net/2cmbq9r0/

编辑:更改left:initialleft:auto使其适用于 IE11。


And*_*hiu 5

该复选框不是实际的<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;
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

注意:如果加载Bootstrap CSS 之后解析了此代码,则可以将div.custom-control-right选择器替换.custom-control-right为。但是,在SO上,链接资源是在CSS面板中的代码之后加载的,为了使它起作用,我不得不对选择器进行过度限定。