如何在同一行中对齐两个表单的两个输入字段?
以下是从一个HTML页面如何在同一行中对齐两个表单的两个输入字段?
<form method="get" action="search/s" id="number">
<div style="text-align: center;">
<input type="text" id="regNo" name="regNo" size="30" maxLength="50" > or
</div>
</form>
<form method="get" action="search/l" id="name">
<input type="text" id="studentName" name="studentName" size="30" maxLength="50" >
</form>
我希望两个领域是在一条线一个其他和中心对齐后两种形式。我怎样才能做到这一点?
将它们放在一个额外的容器元素中,例如div
和text-align:center
。然后,只需将display:inline-block
指定为form
元素即可覆盖默认的block
渲染,从而强制它们显示为新行。
我想知道使用容器和CSS是UI方面的性能问题。关于浏览器加载和DOM的性能。只是好奇。 – user3705478 2014-10-04 21:30:33
不在这个级别。使用数十万,最终可能会有统计意义。更可能需要数百万才能使其可衡量。而且很可能你仍然需要它们来使它与许多元素正确呈现。 – 2014-10-04 21:32:12
如果你对性能感到好奇 - 在Facebook中间的某处点击“检查元素”,并问问自己还有多快。 – 2014-10-04 21:33:58
你想省略围绕第一输入股利 - 它显示:自然块和块上一个新行自动对齐。 .container div应该有一个固定的宽度(或者px或者%),以便居中工作。
<div class="container">
<form method="get" action="search/s" id="number">
<input type="text" id="regNo" name="regNo" size="30" maxLength="50" > or
</form>
<form method="get" action="search/l" id="name">
<input type="text" id="studentName" name="studentName" size="30" maxLength="50" >
</form>
</div>
<style>
.container {
text-align: center;
}
你在这里做了一些非常邪恶的事情。首先,'display:inline'对于像'form'这样的自然块元素来说是非常危险的。在这种情况下它将会正确,但通常你应该更喜欢'inline-block'。其次,你假设内容的固定宽度,这是严重的限制和不必要的。 – 2014-10-04 21:30:32
我编辑了答案,所以表格不是内联的。 对我来说,似乎有点邪恶的是文本对齐:输入字段的中心 - 我宁愿让它们都固定(即50%),容器也可以固定在它上面。母元素的75% - 这应该与响应式设计很好地匹配...... – 2014-10-04 21:34:29
“文本对齐”用于控制容器内“内联”元素的渲染。 'input'元素默认是'inline',没有什么不好用这种方式来使用它们。关于如何改进布局的建议是很好的,但与其他方式更容易和灵活地解决的问题无关。 – 2014-10-04 21:36:34
具有u试图 #NUMBER { 浮动:左; } ? – gsiradze 2014-10-04 21:21:24
你能给我举一些代码的例子吗? – user3705478 2014-10-04 21:23:04