Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在HTML中对齐输入表单_Html_Forms_Alignment - Fatal编程技术网

如何在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

我是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>

名字:
姓氏:
电子邮件:
问题是,“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>