Firefox 内联列表中的标签和 Input/Select 对齐
Label and Input/Select alignment inside inline list in Firefox
我想要一个内联列表,标签显示在相应输入的顶部。
这个 fiddle 展示了我正在使用的一个简单实现:JSFiddle
HTML
<form>
<ul>
<li>
<label for="FirstName">First Name</label>
<input type="text" id="FirstName" name="FirstName" />
</li>
<li>
<label for="Gender">Gender</label>
<select id="Gender" name="Gender">
<option value="1">Male</option>
<option value="2">Female</option>
<option value="3">N/A</option>
</select>
</li>
<li>
<input type="submit" value="Filter" />
</li>
</ul>
</form>
CSS
ul {
list-style: outside none none;
}
li {
display: inline-block;
}
input, select {
display: block;
}
这在除 Firefox 之外的所有浏览器中都运行良好,我不知道为什么。 float: left
对我来说不是一个很好的解决方案,因为它会将内容对齐到 li
的顶部。在理想的解决方案中,"Filter" 按钮将在视觉上与左侧的 input
和 select
元素对齐,就像上面在 IE 和Chrome.
如何使用 display: inline-block;对于输入,select css 也是?
input, select {
display: inline-block;
}
另外,添加显示:块;在 css.
中添加标签
此处示例:
使用 FlexBox 的解决方案。
ul {
list-style: outside none;
display: flex;
flex-direction: row;
}
li {
display: flex;
flex-direction: column;
width: 150px;
margin: 10px;
}
li.submit {
flex-direction: row;
align-items: center;
justify-content: center;
}
li.submit [type="submit"] {
width: 100%;
}
<form>
<ul>
<li>
<label for="FirstName">First Name</label>
<input type="text" id="FirstName" name="FirstName" />
</li>
<li>
<label for="Gender">Gender</label>
<select id="Gender" name="Gender">
<option value="1">Male</option>
<option value="2">Female</option>
<option value="3">N/A</option>
</select>
</li>
<li class="submit">
<input type="submit" value="Filter" />
</li>
</ul>
</form>
我想要一个内联列表,标签显示在相应输入的顶部。
这个 fiddle 展示了我正在使用的一个简单实现:JSFiddle
HTML
<form>
<ul>
<li>
<label for="FirstName">First Name</label>
<input type="text" id="FirstName" name="FirstName" />
</li>
<li>
<label for="Gender">Gender</label>
<select id="Gender" name="Gender">
<option value="1">Male</option>
<option value="2">Female</option>
<option value="3">N/A</option>
</select>
</li>
<li>
<input type="submit" value="Filter" />
</li>
</ul>
</form>
CSS
ul {
list-style: outside none none;
}
li {
display: inline-block;
}
input, select {
display: block;
}
这在除 Firefox 之外的所有浏览器中都运行良好,我不知道为什么。 float: left
对我来说不是一个很好的解决方案,因为它会将内容对齐到 li
的顶部。在理想的解决方案中,"Filter" 按钮将在视觉上与左侧的 input
和 select
元素对齐,就像上面在 IE 和Chrome.
如何使用 display: inline-block;对于输入,select css 也是?
input, select {
display: inline-block;
}
另外,添加显示:块;在 css.
中添加标签此处示例:
使用 FlexBox 的解决方案。
ul {
list-style: outside none;
display: flex;
flex-direction: row;
}
li {
display: flex;
flex-direction: column;
width: 150px;
margin: 10px;
}
li.submit {
flex-direction: row;
align-items: center;
justify-content: center;
}
li.submit [type="submit"] {
width: 100%;
}
<form>
<ul>
<li>
<label for="FirstName">First Name</label>
<input type="text" id="FirstName" name="FirstName" />
</li>
<li>
<label for="Gender">Gender</label>
<select id="Gender" name="Gender">
<option value="1">Male</option>
<option value="2">Female</option>
<option value="3">N/A</option>
</select>
</li>
<li class="submit">
<input type="submit" value="Filter" />
</li>
</ul>
</form>