如何在HTML中对齐输入表单
我是HTML新手,我正在努力学习如何使用表单 到目前为止,我遇到的最大问题是对齐表单。下面是我当前HTML文件的一个示例:如何在HTML中对齐输入表单,html,forms,alignment,Html,Forms,Alignment,我是HTML新手,我正在努力学习如何使用表单 到目前为止,我遇到的最大问题是对齐表单。下面是我当前HTML文件的一个示例: <form> First Name:<input type="text" name="first"><br /> Last Name:<input type="text" name="last"><br /> Email:<input type="text" name="email"><br
<form>
First Name:<input type="text" name="first"><br />
Last Name:<input type="text" name="last"><br />
Email:<input type="text" name="email"><br />
</form>
名字:
姓氏:
电子邮件:
问题是,“Email”后面的字段框在间距上与“first”和“last name”有很大不同。什么是“正确”的方式使他们基本上“排队”
我正在努力练习良好的形式和语法…很多人可能会用CSS来实现这一点。我不确定,到目前为止,我只学习了HTML的基本知识。对于基本知识,您可以尝试在表格中对齐它们。然而,使用表格不利于布局,因为表格是用于内容的 您可以使用的是CSS浮动技术 货物积载与系固安全操作规则 HTML
名字:
姓氏:
电邮:
我写的一篇详细的文章回答了IE7浮点问题:如果你是HTML新手,一个简单的解决方案就是使用一个表来排列所有内容
<form>
<table>
<tr>
<td align="right">First Name:</td>
<td align="left"><input type="text" name="first" /></td>
</tr>
<tr>
<td align="right">Last Name:</td>
<td align="left"><input type="text" name="last" /></td>
</tr>
<tr>
<td align="right">Email:</td>
<td align="left"><input type="text" name="email" /></td>
</tr>
</table>
</form>
名字:
姓氏:
电邮:
另一个例子,它使用CSS,我只是将表单与容器类放在一个div中。并指定其中包含的输入元素为容器宽度的100%,并且两边都没有任何元素
.container{
宽度:500px;
明确:两者皆有;
}
.容器输入{
宽度:100%;
明确:两者皆有;
}
范例表格
名字
姓
电子邮件
传统的方法是使用表格
例如:
<table>
<tbody>
<tr>
<td>
First Name:
</td>
<td>
<input type="text" name="first">
</td>
</tr>
<tr>
<td>
Last Name:
</td>
<td>
<input type="text" name="last">
</td>
</tr>
</tbody>
</table>
名字:
姓氏:
然而,许多人认为表是限制性的,更喜欢CSS。使用CSS的好处是可以使用各种元素。从divs、ordered和unordered列表中,您可以完成相同的布局
最后,你会想用你最舒服的东西
提示:表格很容易入门。我非常喜欢使用定义列表
<dl>
<dt>Username:</dt>
<dd><input type="text" name="username" /></dd>
<dt>Password:</dt>
<dd><input type="password" name="password" /></dd>
</dl>
用户名:
密码:
它们很容易使用CSS进行样式设置,并且避免了使用表格进行布局的耻辱。为此,我更喜欢保持正确的HTML语义,并尽可能简单地使用CSS 像这样的东西可以完成这项工作:
label{
display: block;
float: left;
width : 120px;
}
但是有一个缺点:您可能必须为每个表单选择正确的标签宽度,如果您的标签可以是动态的(例如I18N标签),这并不容易。您应该使用表格。就逻辑结构而言,数据是表格形式的:这就是为什么您希望它对齐,因为您希望在二维结构中显示标签不仅与其输入框相关,而且彼此相关 [考虑一下如果要显示字符串或数值而不是输入框,您会怎么做。]使用css
.containerdiv label {
float:left;
width:25%;
text-align:right;
margin-right:5px; /* optional */
}
.containerdiv input {
float:left;
width:65%;
}
这会给你一些类似的东西:
label1 |input box |
another label |another input box |
我发现将标签的显示更改为内联块并设置宽度要容易得多
label {
display: inline-block;
width:100px;
text-align: right;
}
我知道这个问题已经得到了回答,但我找到了一种新的方法,可以很好地将它们结合起来,并带来额外的好处,请参见 基本上,您可以在输入周围使用label元素,并使用该元素对齐:
<label><span>Name</span> <input /></label>
<label><span>E-Mail</span> <input /></label>
<label><span>Comment</span> <textarea></textarea></label>
- 换行符不需要任何凌乱的br,这意味着您可以快速动态完成多列布局
- 整条线都可以点击。特别是对于复选框,这是一个巨大的帮助
- 动态显示/隐藏表单行很容易(只需搜索输入并隐藏其父项->标签)
- 您可以将类分配给整个标签,使其更清楚地显示错误输入(而不仅仅是在输入字段周围)
用户名
在CSS中,您必须将标签和输入声明为display:inline块,并根据您的要求指定宽度。希望这对您有所帮助。:) css是我用来解决这个问题的,与Gjaa类似,但样式更好
p
{
text-align:center;
}
.styleform label
{
float:left;
width: 40%;
text-align:right;
}
.styleform input
{
float:left;
width: 30%;
}
这是我的HTML,专门用于一个没有php代码的简单注册表单
<form id="registration">
<h1>Register</h1>
<div class="styleform">
<fieldset id="inputs">
<p><label>Name:</label>
<input id="name" type="text" placeholder="Name" autofocus required>
</p>
<p><label>Email:</label>
<input id="email" type="text" placeholder="Email Address" required>
</p>
<p><label>Username:</label>
<input id="username" type="text" placeholder="Username" autofocus required>
</p>
<p>
<label>Password:</label>
<input id="password" type="password" placeholder="Password" required>
</p>
</fieldset>
<fieldset id="actions">
</fieldset>
</div>
<p>
<input type="submit" id="submit" value="Register">
</p>
登记
姓名:
电邮:
用户名:
密码:
这很简单,我才刚刚开始,但它工作得很好公认的答案(以像素为单位设置显式宽度)使得很难进行更改,并且当用户使用不同的字体大小时会中断。另一方面,使用CSS表非常有效:
form{display:table;}
p{显示:表行;}
标签{显示:表格单元格;}
输入{显示:表格单元格;}
短标签:
超长标签:
在无序列表中插入输入标记。使样式类型为无。
这里有一个例子
<ul>
Input1
<li> <input type="text" />
Input2
<li> <input type="text" />
<ul/>
输入1
-
输入2
-
为我工作 只需添加
<form align="center ></from>
克莱门特的答案是迄今为止最好的。这里有一个稍微改进的答案,显示了不同的可能对齐方式,包括左-中-右对齐按钮:
标签
{右边填充:8px;
}
.FAligned,.FAlignIn
{显示:表格;
}
法利宁先生
{宽度:100%;
}
.fR左、.fR右、.fR中心
{显示:表行;
空白:nowrap;
}
.FCLeft、.FCRight、.FCCenter
{显示:表格单元格;
}
.FRLeft、.FCLeft、.FILeft
{文本对齐:左;
}
.FRRight、.FCRight、.FIRight
{文本对齐:右;
}
.FRCenter、.FCCenter、.FICenter
{文本对齐:居中;
}
左:
左-右-左:
p
{
text-align:center;
}
.styleform label
{
float:left;
width: 40%;
text-align:right;
}
.styleform input
{
float:left;
width: 30%;
}
<form id="registration">
<h1>Register</h1>
<div class="styleform">
<fieldset id="inputs">
<p><label>Name:</label>
<input id="name" type="text" placeholder="Name" autofocus required>
</p>
<p><label>Email:</label>
<input id="email" type="text" placeholder="Email Address" required>
</p>
<p><label>Username:</label>
<input id="username" type="text" placeholder="Username" autofocus required>
</p>
<p>
<label>Password:</label>
<input id="password" type="password" placeholder="Password" required>
</p>
</fieldset>
<fieldset id="actions">
</fieldset>
</div>
<p>
<input type="submit" id="submit" value="Register">
</p>
<ul>
Input1
<li> <input type="text" />
Input2
<li> <input type="text" />
<ul/>
<form align="center ></from>