【问题标题】:How to align input="radio" with their labels?如何将 input="radio" 与他们的标签对齐?
【发布时间】:2019-06-08 15:18:26
【问题描述】:

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

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

下面是我的代码,注意我把label的display属性改成了inline block:

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

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

【问题讨论】:

    标签: css html vertical-alignment


    【解决方案1】:

    如果您希望输入和标签“底部对齐”,请尝试使用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>

    【讨论】:

    • 是的,几乎!输入略低于标签,但它明显有帮助。我该如何解决?
    • @Anna Marie,我更新了答案,你能再检查一下吗?我现在使用的是 text-bottom 而不是底部,我还添加了一个小边距
    • 有效!!我只需要一个属性?疯狂的 :)。谢谢! 2分钟后我标记你的答案!
    • @Anna Marie,是的,你只需要vertical-align: text-bottom,然后你可以根据需要添加一个小边距来调整
    【解决方案2】:

    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>

    完美中心:只需在第二个 sn-p 中添加交叉文本和按钮以显示完美中心

    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>

    【讨论】:

      【解决方案3】:

      您可能需要考虑将&lt;input&gt; 包装在&lt;label&gt; 字段中。

      例子:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-11
        • 2018-03-11
        • 1970-01-01
        • 2021-12-22
        • 2020-05-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多