如何将html单选按钮垂直对齐到它的标签?

nin*_*der 83 html css forms xhtml radio-button

我有一个带有单选按钮的表单,它们与标签位于同一行.但是,单选按钮没有与标签垂直对齐,如下面的屏幕截图所示.

单选按钮.

如何将单选按钮与其标签垂直对齐?

编辑:

这是html代码:

<input checked="checked" type="radio" name="user_level" id="rd1" value="1"/>
<label for="rd1">radio 1</label><br/>
<input type="radio" name="user_level" id="rd2" value="2"/>
<label for="rd2">radio 2</label><br/>
<input type="radio" name="user_level" id="rd3" value="3"/>
<label for="rd3">radio 3</label><br/>
Run Code Online (Sandbox Code Playgroud)

和css代码:

label{
    padding:5px;
    color:#222;
    font-family:corbel,sans-serif;
    font-size: 14px;
    margin: 10px;
}
Run Code Online (Sandbox Code Playgroud)

zak*_*lle 133

试试这个:

input[type="radio"] {
  margin-top: -1px;
  vertical-align: middle;
}
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用但是我必须添加一个`height = 100%;`因为我的父元素没有明确设置高度. (8认同)
  • 解释为什么这是唯一正确的答案:HTML中的某些元素具有默认边距或填充值,如<p>或<li>元素或单选按钮.如果您进入开发人员模式(F12)并将鼠标悬停在标签上,则可以看到此信息.实际上,这是一个很好的行为,因为浏览器自己使用CSS来定位用户然后可以重置的预定义元素.但如果你不知道为什么某些东西在一开始就不对齐,那就太麻烦了.因此,如果默认情况下看起来很奇怪,请始终尝试覆盖您未设置的设置. (3认同)

nin*_*der 13

我知道我已经选择了menuka devinda的anwer,但是看看下面的评论,我同意并尝试提出更好的解决方案.我设法想出了这个,在我看来这是一个更优雅的解决方案:

input[type='radio'], label{   
    vertical-align: baseline;
    padding: 10px;
    margin: 10px;
 }
Run Code Online (Sandbox Code Playgroud)

感谢所有提供答案的人,你的回答并没有被忽视.如果您还有其他任何想法,请随意添加您自己的答案.


vus*_*san 11

input {
    display: table-cell;
    vertical-align: middle
}
Run Code Online (Sandbox Code Playgroud)

为所有收音机上课.这适用于html页面上的所有单选按钮.

小提琴


Mut*_*ran 9

尝试添加vertical-align:top到CSS中

label{
    padding:5px;
    color:#222;
    font-family:corbel,sans-serif;
    font-size: 14px;
    margin: 10px;
    vertical-align:top;
}?
Run Code Online (Sandbox Code Playgroud)

测试:http://jsfiddle.net/muthkum/heAWP/


Dom*_*nic 8

可能还会给答案增加一些弹性。

.Radio {
  display: inline-flex;
  align-items: center;
}

.Radio--large {
  font-size: 2rem;
}

.Radio-Input {
  margin: 0 0.5rem 0;
}
Run Code Online (Sandbox Code Playgroud)
<div>
  <label class="Radio" for="sex-female">
    <input class="Radio-Input" type="radio" id="sex-female" name="sex" value="female" />
    Female
  </label>

  <label class="Radio" for="sex-male">
    <input class="Radio-Input" type="radio" id="sex-male" name="sex" value="male" />
    Male
  </label>
</div>


<div>
  <label class="Radio Radio--large" for="sex-female2">
    <input class="Radio-Input" type="radio" id="sex-female2" name="sex" value="female" />
    Female
  </label>

  <label class="Radio Radio--large" for="sex-male2">
    <input class="Radio-Input" type="radio" id="sex-male2" name="sex" value="male" />
    Male
  </label>
</div>
Run Code Online (Sandbox Code Playgroud)


Sha*_*ora 7

你可以这样做:

input {
    vertical-align:middle;
}

label{
    color:#222;
    font-family:corbel,sans-serif;
    font-size: 14px;
}
Run Code Online (Sandbox Code Playgroud)

DEMO


Anr*_*rgh -1

我认为添加display:inline-block标签并给予它们padding-top可以解决这个问题。line-height另外,只需在标签上设置也可以。