垂直对齐单选按钮旁边的文本

Posted

技术标签:

【中文标题】垂直对齐单选按钮旁边的文本【英文标题】:Vertically aligning text next to a radio button 【发布时间】:2013-07-25 07:17:38 【问题描述】:

这是一个基本的 CSS 问题,我有一个带有小文本标签的单选按钮。我希望文本垂直居中显示,但在我的情况下,文本始终与单选按钮的按钮对齐。

<p><input type="radio" id="opt1" name="opt1" value="1" />A label</p>

这是一个 Jsfiddle:

http://jsfiddle.net/UnA6j/

有什么建议吗?

谢谢,

艾伦。

【问题讨论】:

jsfiddle.net/UnA6j/5 您应该使用&lt;label&gt; 作为标签而不是段落。 【参考方案1】:

label 中使用它。使用vertical-align 将其设置为各种值——bottombaselinemiddle 等。

http://jsfiddle.net/UnA6j/5/

【讨论】:

谢谢...我仍然无法将更新后的代码与标签对齐。jsfiddle.net/UnA6j/5 好的,我搞定了,我修改了您的代码并调整了无线电 ipnut 以使其上边距为负,从而使对齐精确。负边距是否被接受,感觉不对! jsfiddle.net/UnA6j/5 很好.. 我不认为负边距是一个问题.. 如果它适用于所有浏览器,那很好.. 是常态 您还可以对vertical-align 规则使用数值。例如vertical-align:-1px; 谢谢,我和vertical-align: sub;对齐了【参考方案2】:

我想这就是你可能要求的

http://jsbin.com/ixowuw/2/

CSS

label
  font-size:18px;
  vertical-align: middle;


input[type="radio"]
  vertical-align: middle;

html

<span>
  <input type="radio" id="oddsPref" name="oddsPref" value="decimal" />
  <label>Decimal</label>
</span>

【讨论】:

@Rahul-Thakus 感谢您的代码给了我同样的问题.. 文本与基线对齐.... 确保它没有被其他父属性覆盖,顺便说一句您使用的是什么浏览器? @Protectorone 对 html 和 css 做了一些小的改动。请试试这个,应该也适用于更大的字体。 还要确保您的单选按钮上没有任何边距。这把我搞砸了。【参考方案3】:

习惯了

    input[type="radio"]
    vertical-align:top;
    
p
    font-size:10px;line-height: 18px;

Demo

【讨论】:

【参考方案4】:

这将在对齐时死机

input[type="radio"] 
  margin-top: 1px;
  vertical-align: top;

【讨论】:

【参考方案5】:

HTML:

<label><input type="radio" id="opt1" name="opt1" value="1"> A label</label>

CSS:

label input[type="radio"]  vertical-align: text-bottom; 

【讨论】:

【参考方案6】:

简单而简短的解决方案添加以下样式:

style="vertical-align: text-bottom;"

【讨论】:

【参考方案7】:

你可以试试类似的东西;

<p><input type="radio" id="oddsPref" name="oddsPref" value="decimal" /><span>Decimal</span></p>

并给跨度一个顶部的边距;

span
    margin-top: 4px;
    position:absolute;

这是小提琴http://jsfiddle.net/UnA6j/11/

【讨论】:

我需要使用相对而不是绝对字体大小进行跨浏览器放置,这会在不同浏览器中产生不同大小的文本。您的帖子让我想到在 ems 中使用负边距顶部值来补偿,这很有效! 谢谢@grw。如果它适合你,请考虑支持我的答案:)【参考方案8】:

您需要使用 float:left 将文本对齐到单选按钮的左侧

input[type="radio"]
float:left;

您也可以使用标签来获得更灵敏的输出。

【讨论】:

【参考方案9】:

你也可以试试这样的:

input[type="radio"] 
  margin-top: -1px;
  vertical-align: middle;
  <label  class="child"><input id = "warm" type="radio" name="weathertype" value="warm" checked> Warm<br></label>
<label class="child1"><input id = "cold" type="radio" name="weathertype" value="cold" checked> Cold<br></label>

【讨论】:

您的解决方案非常好。我刚刚投票了【参考方案10】:

input.radio vertical-align:middle; margin-top:8px; margin-bottom:12px;

根据需要简单调整顶部和底部以完美对齐单选按钮或复选框

&lt;input type="radio" class="radio"&gt;

【讨论】:

以上是关于垂直对齐单选按钮旁边的文本的主要内容,如果未能解决你的问题,请参考以下文章

CSS:在单选按钮后对齐多行文本

Bootstrap - 垂直单选按钮未对齐

无法将单选按钮对齐到中心(垂直)[重复]

Angular Material Design:要垂直对齐的单选按钮组

更改单选按钮旁边的字体大小

Html 单选选项文本对齐