如何在标签下方水平对齐单选按钮
How to align radio buttons horizontally below labels
所以我使用以下 HTML 在 jsp 中显示 4 个单选按钮水平居中在各自的标签下方:
<s:form action="markUser" name="markUser" method="post" namespace="/secure/admin">
<div id="radioGroup">
<label for="markStudent">Mark User as Student</label>
<input type="radio" name="mark" id="markStudent" value="Student" />
<label for="markAdmin">Mark User as Admin</label>
<input type="radio" name="mark" id="markAdmin" value="Admin" />
<label for="markService">Mark User as Service</label>
<input type="radio" name="mark" id="markService" value="Service" />
<label for="markNull">Mark User as Null</label>
<input type="radio" name="mark" id="markNull" value="Null" />
</div>
</s:form>
和CSS:
.radioGroup label {
display: inline-block;
text-align: center;
margin: 0 0.2em;
}
.radioGroup label input[type="radio"] {
display: block;
margin: 0.5em auto;
}
但我总是收到如下所示的错位按钮
我可能在这里遗漏了什么?
您可以将单选按钮放在标签内并稍微更改 CSS。
.radioGroup label {
display: inline-block;
margin: 0 0.2em;
text-align: center;
}
.radioGroup label input[type="radio"] {
margin: 0.5em auto;
}
<div class="radioGroup">
<label for="markStudent">Mark User as Student<br />
<input type="radio" name="mark" id="markStudent" value="Student" />
</label>
<label for="markAdmin">Mark User as Admin<br />
<input type="radio" name="mark" id="markAdmin" value="Admin" />
</label>
<label for="markService">Mark User as Service<br />
<input type="radio" name="mark" id="markService" value="Service" />
</label>
<label for="markNull">Mark User as Null<br />
<input type="radio" name="mark" id="markNull" value="Null" />
</label>
</div>
这可确保单选按钮在其各自标签的正下方水平居中。
据我了解你想要这个
#radioGroup .wrap {
display: inline-block;
}
#radioGroup label {
display: block;
text-align: center;
margin: 0 0.2em;
}
#radioGroup input[type="radio"] {
display: block;
margin: 0.5em auto;
}
<div id="radioGroup">
<div class="wrap">
<label for="markStudent">Mark User as Student</label>
<input type="radio" name="mark" id="markStudent" value="Student" />
</div>
<div class="wrap">
<label for="markAdmin">Mark User as Admin</label>
<input type="radio" name="mark" id="markAdmin" value="Admin" />
</div>
<div class="wrap">
<label for="markService">Mark User as Service</label>
<input type="radio" name="mark" id="markService" value="Service" />
</div>
<div class="wrap">
<label for="markNull">Mark User as Null</label>
<input type="radio" name="mark" id="markNull" value="Null" />
</div>
</div>
注:
这在两个方面是不正确的:
.radioGroup label input[type="radio"] {
display: block;
margin: 0.5em auto;
}
首先,该元素的 ID 为 radioGroup
而不是 class
其次,输入不是标签的 child,而是 sibling
所以我使用以下 HTML 在 jsp 中显示 4 个单选按钮水平居中在各自的标签下方:
<s:form action="markUser" name="markUser" method="post" namespace="/secure/admin">
<div id="radioGroup">
<label for="markStudent">Mark User as Student</label>
<input type="radio" name="mark" id="markStudent" value="Student" />
<label for="markAdmin">Mark User as Admin</label>
<input type="radio" name="mark" id="markAdmin" value="Admin" />
<label for="markService">Mark User as Service</label>
<input type="radio" name="mark" id="markService" value="Service" />
<label for="markNull">Mark User as Null</label>
<input type="radio" name="mark" id="markNull" value="Null" />
</div>
</s:form>
和CSS:
.radioGroup label {
display: inline-block;
text-align: center;
margin: 0 0.2em;
}
.radioGroup label input[type="radio"] {
display: block;
margin: 0.5em auto;
}
但我总是收到如下所示的错位按钮
我可能在这里遗漏了什么?
您可以将单选按钮放在标签内并稍微更改 CSS。
.radioGroup label {
display: inline-block;
margin: 0 0.2em;
text-align: center;
}
.radioGroup label input[type="radio"] {
margin: 0.5em auto;
}
<div class="radioGroup">
<label for="markStudent">Mark User as Student<br />
<input type="radio" name="mark" id="markStudent" value="Student" />
</label>
<label for="markAdmin">Mark User as Admin<br />
<input type="radio" name="mark" id="markAdmin" value="Admin" />
</label>
<label for="markService">Mark User as Service<br />
<input type="radio" name="mark" id="markService" value="Service" />
</label>
<label for="markNull">Mark User as Null<br />
<input type="radio" name="mark" id="markNull" value="Null" />
</label>
</div>
这可确保单选按钮在其各自标签的正下方水平居中。
据我了解你想要这个
#radioGroup .wrap {
display: inline-block;
}
#radioGroup label {
display: block;
text-align: center;
margin: 0 0.2em;
}
#radioGroup input[type="radio"] {
display: block;
margin: 0.5em auto;
}
<div id="radioGroup">
<div class="wrap">
<label for="markStudent">Mark User as Student</label>
<input type="radio" name="mark" id="markStudent" value="Student" />
</div>
<div class="wrap">
<label for="markAdmin">Mark User as Admin</label>
<input type="radio" name="mark" id="markAdmin" value="Admin" />
</div>
<div class="wrap">
<label for="markService">Mark User as Service</label>
<input type="radio" name="mark" id="markService" value="Service" />
</div>
<div class="wrap">
<label for="markNull">Mark User as Null</label>
<input type="radio" name="mark" id="markNull" value="Null" />
</div>
</div>
注:
这在两个方面是不正确的:
.radioGroup label input[type="radio"] {
display: block;
margin: 0.5em auto;
}
首先,该元素的 ID 为 radioGroup
而不是 class
其次,输入不是标签的 child,而是 sibling