如何垂直alignment一个html单选button到它的标签?
我有一个单选button的标签在同一行的窗体。 然而单选button并不与它们的标签垂直alignment,如下面的屏幕截图所示。
我怎样才能将单选button与标签垂直alignment?
编辑:
这里是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/>
和CSS代码:
label{ padding:5px; color:#222; font-family:corbel,sans-serif; font-size: 14px; margin: 10px; }
尝试这个:
input[type="radio"] { margin-top: -1px; vertical-align: middle; }
我知道我select了菜单devinda的饮料,但看着下面的意见,我同意并试图提出一个更好的解决scheme。 我设法想出了这个,在我看来这是一个更优雅的解决scheme:
input[type='radio'], label{ vertical-align: baseline; padding: 10px; margin: 10px; }
感谢所有提供答案的人,你的回答并没有被忽视。 如果你还有其他想法,可以自由添加你自己的答案。
尝试在CSS中添加vertical-align:top
label{ padding:5px; color:#222; font-family:corbel,sans-serif; font-size: 14px; margin: 10px; vertical-align:top; }
testing: http : //jsfiddle.net/muthkum/heAWP/
input { display: table-cell; vertical-align: middle }
把所有的电台上课。 这将适用于html页面上的所有单选button。
小提琴
你可以这样做:
input { vertical-align:middle; } label{ color:#222; font-family:corbel,sans-serif; font-size: 14px; }
DEMO
像这样的东西应该工作
CSS:
input { float: left; clear: left; width: 50px; line-height: 20px; } label { float: left; vertical-align: middle; }
label, input { vertical-align: middle; }
我只是将盒子的垂直中点与父盒子的基线加上父盒子的一半(en.wikipedia.org/wiki/X-height)alignment。
很多这些答案都说使用vertical-align: middle;
,这alignment了,但对我来说,它仍然是几个像素。 我用来获得真正的标签和无线电input之间的1alignment的方法是这样的, vertical-align: top;
:
label, label>input{ font-size: 20px; display: inline-block; margin: 0; line-height: 28px; height: 28px; vertical-align: top; }
<h1>How are you?</h1> <fieldset> <legend>Your response:</legend> <label for="radChoiceGood"> <input type="radio" id="radChoiceGood" name="radChoices" value="Good">Good </label> <label for="radChoiceExcellent"> <input type="radio" id="radChoiceExcellent" name="radChoices" value="Excellent">Excellent </label> <label for="radChoiceOk"> <input type="radio" id="radChoiceOk" name="radChoices" value="OK">OK </label> </fieldset>
添加display:inline-block
到标签,并给他们padding-top
会解决这个问题,我想。 另外,只需在标签上设置line-height
也是可以的。
虽然我同意表格不应该用于devise布局,与stream行的观点相反,他们通过validation。 即表标记不被弃用。 alignment单选button的最好方法是使用垂直alignment中间CSS,并在input元素上调整边距。
我喜欢把input放在标签里面(额外的好处是:现在你不需要标签上的for
属性),并且在inputvertical-align: middle
joinvertical-align: middle
。
label > input[type=radio] { vertical-align: middle; margin-top: -2px; } #d2 { font-size: 30px; }
<div> <label><input type="radio" name="radio" value="1">Good</label> <label><input type="radio" name="radio" value="2">Excellent</label> <div> <br> <div id="d2"> <label><input type="radio" name="radio2" value="1">Good</label> <label><input type="radio" name="radio2" value="2">Excellent</label> <div>
有几种方法,我宁愿是在HTML中使用一个表。 你可以添加两个coloum三行表,并放置单选button和标签。
<table border="0"> <tr> <td><input type="radio" name="sex" value="1"></td> <td>radio1</td> </tr> <tr> <td><input type="radio" name="sex" value="2"></td> <td>radio2</td> </tr> </table>