对齐标签和自定义复选框

时间:2016-02-22 21:52:37

标签: html css

如何对齐标签和自定义复选框?代码片段如下。我想确保标签和开关垂直对齐,我还应该能够使用标签中的任何文本。我不能使用position:absolute方法来对齐标签,因为文本可能会更改,我不希望任何重叠。

.switch {
  position: relative;
  display: inline-block;
}

.switch input[type="checkbox"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  -o-appearance: none;
  appearance: none;
  cursor: pointer;
  outline: none;
  height: 25px;
  width: 50px;
  border-radius: 25px;
  background-color: #999;
}

.switch input[type="checkbox"]:checked {
  background-color: green;
}

.switch input[type="checkbox"]:after {
  position: absolute;
  content: ' ';
  height: 16.66667px;
  width: 16.66667px;
  top: 6.5px;
  right: 33px;
  border-radius: 11.11111px;
  background: #fff;
}

.switch input[type="checkbox"]:checked::after {
  right: 6px;
}
<div class="switch">
  <label for="checkbox1">Test Test Test Test</label>
  <input type="checkbox" id="checkbox1">
</div>

1 个答案:

答案 0 :(得分:1)

您应该能够在输入上使用vertical-align属性(例如:vertical-align: middle;):

&#13;
&#13;
.switch {
  position: relative;
  display: inline-block;
}
.switch input[type="checkbox"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  -o-appearance: none;
  appearance: none;
  cursor: pointer;
  outline: none;
  height: 25px;
  width: 50px;
  border-radius: 25px;
  background-color: #999;
  vertical-align: middle;
}
.switch input[type="checkbox"]:checked {
  background-color: green;
}
.switch input[type="checkbox"]:after {
  position: absolute;
  content: ' ';
  height: 16.66667px;
  width: 16.66667px;
  top: 6.5px;
  right: 33px;
  border-radius: 11.11111px;
  background: #fff;
}
.switch input[type="checkbox"]:checked::after {
  right: 6px;
}
&#13;
<div class="switch">
  <label for="checkbox1">Test Test Test Test</label>
  <input type="checkbox" id="checkbox1">
</div>
&#13;
&#13;
&#13;