如何将 input="radio" 与他们的标签对齐?

How to align input="radio" with their labels?

我知道这里有很多答案。我搜索,尝试适应,但我一直失败,这就是我现在问的原因。

我有以下问题。我希望标签和输入都在同一行:是 o 否 o(o 表示输入)。

这是我的以下代码,注意我将标签的显示 属性 更改为内联块:

<div class="col-sm-3">
        <label>Yes</label>
        <input type="radio" name="yes/no" checked>
        <label>No</label>
        <input type="radio" name="yes/no" >
    </div> 

很抱歉回答,虽然有很多类似的问题和答案,但改编它们并没有奏效...

如果您希望输入和标签为 'bottom-aligned',请尝试使用 vertical-align: text-bottom

input[type='radio'] {
  vertical-align: text-bottom;
  margin-bottom: 1px;
}
div {
  display: inline-block;
  border: 1px solid black;
}
<div class="col-sm-3">
    <label>Yes</label>
    <input type="radio" name="yes/no" checked>
    <label>No</label>
    <input type="radio" name="yes/no" >
</div>

vertical-align: middlemargin-top: -1px 应用于每个输入 [type='radio'] :

input[type='radio'] {
  margin-top: -1px;
  vertical-align: middle;
}
<div class="col-sm-3">
    <label>Yes</label>
    <input type="radio" name="yes/no" checked>
    <label>No</label>
    <input type="radio" name="yes/no" >
</div>

完美居中:只需在第二个代码段中添加交叉文本和按钮即可显示完美居中

input[type='radio'] {
  margin-top: -1px;
  vertical-align: middle;
}

.col-sm-3 {
    position: relative;
    border: 1px solid;
}

.col-sm-3:after {
    display: block;
    content: '';
    position: absolute;
    width: 100%;
    height: 1px;
    background: black;
    top: 50%;
}
<div class="col-sm-3">
    <label>Yes</label>
    <input type="radio" name="yes/no" checked>
    <label>No</label>
    <input type="radio" name="yes/no" >
</div>

您可能需要考虑将 <input> 包装在 <label> 字段中。

示例:

<div class="col-sm-3">
  <label>Yes
    <input type="radio" name="yes/no" checked>
  </label>
  <label>No
    <input type="radio" name="yes/no" >
  </label>
</div> 

此实施将提高输入的可访问性和可用性,并且不需要任何额外的 css。