为什么我的标签和单选按钮不会保持在同一行,我该怎么办?
这是我的表格:
<form name="submit" id="submit" action="#" method="post">
<?php echo form_hidden('what', 'item-'.$identifier);?>
<label for="one">First Item</label>
<input type="radio" id="one" name="first_item" value="1" />
<label for="two">Second Item</label>
<input type="radio" id="two" name="first_item" value="2" />
<input class="submit_form" name="submit" type="submit" value="Choose" tabindex="4" />
</form>
如果您使用我在这个问题中列出的 HTML 结构,您只需将标签和输入浮动到左侧并调整填充/边距,直到内容对齐。
是的,您需要让您的单选按钮具有旧 IE 的类名称。并且要让所有全部位于同一行,根据我上面链接到的标记,它会像这样:
fieldset {
overflow: hidden
}
.some-class {
float: left;
clear: none;
}
label {
float: left;
clear: none;
display: block;
padding: 0px 1em 0px 8px;
}
input[type=radio],
input.radio {
float: left;
clear: none;
margin: 2px 0 0 2px;
}
<fieldset>
<div class="some-class">
<input type="radio" class="radio" name="x" value="y" id="y" />
<label for="y">Thing 1</label>
<input type="radio" class="radio" name="x" value="z" id="z" />
<label for="z">Thing 2</label>
</div>
</fieldset>
<label for="one">
<input type="radio" id="one" name="first_item" value="1" />
First Item
</label>
类似的事情,一直对我有用。
css 中的某处为您的 input 标签指定了 width。
将class="radio"
添加到您的单选框,并将
input.radio {width: auto;}
添加到您的 css。
float:left
但我使用
display: inline
.wrapper-class input[type="radio"] {
width: 15px;
}
.wrapper-class label {
display: inline;
margin-left: 5px;
}
<div class="wrapper-class">
<input type="radio" id="radio1">
<label for="radio1">Test Radio</label>
</div>
display:inline
。
如果不更改标记,则无法仅使用 CSS 来解决此问题。
修复此问题的最简单方法是将单选按钮和标签包装在块元素中,例如
p
或
div
,然后使用
white-space:nowrap
防止其包装。 例如:
<div style="white-space:nowrap;">
<label for="one">First Item</label>
<input type="radio" id="one" name="first_item" value="1" />
</div>
<div >
<table>
<tbody>
<tr>
<td><strong>Do you want to add new server ?</strong></td>
<td><input type="radio" name="addServer" id="serverYes" value="1"></td>
<td>Yes</td>
<td><input type="radio" name="addServer" id="serverNo" value="1"></td>
<td>No</td>
</tr>
</tbody>
</table>
</div>
**
尝试将它们都放在
<p>
标签内,或将单选按钮设置为内联,就像精英绅士建议的那样。
input[type="checkbox"],
input[type="radio"],
input.radio,
input.checkbox {
vertical-align:text-top;
width:13px;
height:13px;
padding:0;
margin:0;
position:relative;
overflow:hidden;
top:2px;
}
您可能需要重新调整最高值(取决于您的
line-height
)。如果您不希望兼容 IE6,您只需将此代码放入您的页面即可。否则,您必须在输入中添加额外的类(您可以使用 jQuery - 或任何其他库 - 为此;))
<menu>
<label>Option 1</label>
<input type="radio" id="opt1">
<label>Option 2</label>
<input type="radio" id="opt2">
<label>Option 3</label>
<input type="radio" id="opt3">
</menu>
<table>
<tr>
<td>
<label>
@Html.RadioButton("p_sortForPatch", "byName", new { @checked = "checked", @class = "radio" }) By Name
</label>
</td>
<td>
<label>
@Html.RadioButton("p_sortForPatch", "byDate", new { @class = "radio" }) By Date
</label>
</td>
</tr>
</table>
<label for="one">First Item</label>
<input type="radio" id="one" name="first_item" value="1" />
如果元素之间需要空格,请使用不间断空格 (
&
nbsp;
) 或 CSS。
fieldset {
overflow: hidden
}
.class {
float: left;
clear: none;
}
label {
float: left;
clear: both;
display:initial;
}
input[type=radio],input.radio {
float: left;
clear: both;
}