我使用一个表格视图来对齐我的表单,同时,我希望提交按钮在表单的中间,但浏览器似乎总是把它放在表格单元格的中间。
form {
display: table;
}
form > div {
display: table-row;
}
form > div > label {
display: table-cell;
padding-right: 10px;
}
form > input[type="submit"] {
display: block;
margin: auto;
}
<form>
<div class="user-name">
<label for="user-name">User Name</label>
<input type="text" name="user-name" id="user-name" />
</div>
<div class="password">
<label for="password">Password</label>
<input type="password" name="password" id="password" />
</div>
<input type="submit" />
</form>
3条答案
按热度按时间dzhpxtsq1#
这里有一个使用Flex而不是Table的解决方案!我相信Flex可能是一个更可行的选择,因为它提供了更多的 * 灵活性 *,就定向和对齐内容而言。
atmip9wb2#
这将是
display: table
版本。您的margin
不能在表中工作。此外,没有可用的colspan
。因此,您必须position: absolute
一个子级并跨越整个宽度(或者在您的情况下,将其与left
和transform
居中)。因此,要么使用真实的的
<table>
,要么(因为现在是2023年)使用flexbox或更新的css grid。hts6caw33#
正如上面的代码,你可以改变你的显示风格,并添加更多的表单元素,就像这样,这将给予完美的外观,希望这有帮助,注解,如果你需要什么。