如何让复选框标签位于复选框的左侧

How to get checkbox label to be on the left of checkbox

我有以下代码:

   <div class=checkbox>
       <label><input type="checkbox" id="foo">My Label</label>
   </div>

   <div class=checkbox>
       <label><input type="checkbox" id="bar">Another Longer</label>
   </div>

   <div class=checkbox>
       <label><input type="checkbox" id="baz">Less than lng</label>
   </div>

这将在 bootstrap 3 中呈现,标签位于右侧。这通常很好,但我需要它在右侧,复选框在左侧。

所以它看起来像下面,标签也应该右对齐。

      My Label []
Another longer []
 Less than lng []

label{float:left}
 <div class=checkbox>
       <input type="checkbox" id="foo"><label>My Label</label>
   </div>

   <div class=checkbox>
       <input type="checkbox" id="bar"><label>Another Longer</label>
   </div>

   <div class=checkbox>
       <input type="checkbox" id="baz"><label>Less than lng</label>
   </div>

为了完美对齐,即使很多设计师不喜欢,我也会这样做

<table><tr>
       <td><label>My Label</label></td>
         <td><input type="checkbox" id="foo"></td>
</tr><tr>
       <td><label>Another Longer</label></td>
         <td><input type="checkbox" id="bar"></td>
</tr><tr>
       <td><label>Less than lng</label></td>
         <td><input type="checkbox" id="baz"></td>
</tr></table>

只需尝试将 float 设置为 left,对于 .checkbox 中的 input

为了平滑对齐,您将设置 .checkboxlabel 的宽度。

要将标签文本右对齐您必须将 text-align 设置为 right
附加 您必须在标签文本和复选框 input.

之间设置 margin-left for input for space

JSFiddle

CSS:

.checkbox, .checkbox label {
    width: 200px;
}

.checkbox label {
    text-align: right;
    float: left;
}
.checkbox input {
    margin-left: 16px;
    float: right;
}

如果你可以把你的 checkbox div 放在一个容器里,你就不用担心设置宽度了:

.container {
  display: inline-block;
  white-space: nowrap;
}

.checkbox {
  border: 1px solid transparent;
  text-align: right;
}

.checkbox input {
  float: right;
}

IE和Chrome需要边框。 (请注意,我已将其透明化。)无意中偶然发现了它,并会尝试弄清楚为什么需要它。

white-space: nowrap 仅适用于 IE。

Working Fiddle


更新

我们需要覆盖一些 Bootstrap 的默认设置。

container 是 Bootstrap class,所以我改成了 cbcontainer

Bootstrap 使输入 position: absolute,所以我已更改为 position: relative !important

此外,输入现在需要一个边距。

最后,IE和Chrome不再需要边框,IE不再需要white-space

已更新CSS:

.cbcontainer {
  display: inline-block;
}

.checkbox {
  text-align: right;
}

.checkbox input {
  float: right;
  position: relative !important;
  margin: 5px !important;
}

New Fiddle