2011-12-07 50 views
1

你好,我尝试将我的所有输入对齐到一个正常形式!我不能使它适合在一起!GRR感谢您的帮助,请...这是在2小时IM失去了我的时间在这简单的事情.....HTML表格对齐正确

  <form name="input" action="html_form_action.asp" method="get"> 

       <div id="one"> 
       <p><label>Prénom</label> <input type="text" id="Prénom"/></p> 
       <p><label>Nom</label> <input type="text" id="Nom" /></p> 
       <p><label>Mot de passe</label> <input type="text" id="Pass" /></p> 
       <p><label>E-mail</label> <input type="text" id="Mail" /></p> 
       </div> 

       <input type="submit" value="Submit" /> 
     </form> 
+1

请定义“正常”。这是告诉我们什么是错误的,以及你希望表单看起来如何!对于法国人来说,“正常”通常是不同的。 –

+0

每个人都用“正常”的形式理解我的意思,同义词是统一的形式....感谢您鼓励我的自我说英语... – FrankSharp

+0

你想在一条线上的一切。一个垂直的文本框列表。每个角落里有一个? –

回答

2

如果你只是想使它排队不使用表,你可以只用一些简单的CSS:

label { 
    width: 120px; //however wide your longest label is 
    float: left; 
} 

然后就取出p标签,并把换行每个输入后。

+0

我(不出意外)更喜欢我的方法。 'float'将事情从正常流程中拉出来,并且通常需要将'clear = both'作为最后一个浮动元素之后的重置,导致标记仅用于帮助布局。 –

5

你可以给你的标签宽度,并将它们向右对齐。要做到这一点,你必须让他们内联块元素。

this fiddle


我猜你不对准他们的权利。这只是当人们用桌子来做这件事时我看到的一种风格。

0

不知道你想达到什么目的。

但是,如果您想要将输入的值对齐到文本框中。在输入代码,添加:

style="text-align: right" 

如果要对齐所有文本框的右侧,我建议你可以重新格式化您的形式在表中。

1

我想你的意思是表格的外观,两列,一个是标签,另一个是输入字段,第二列左对齐,第一列左或右(或许更易读)。最明显和最可靠的方法是让一个表:

<table id="one"> 
<tr><td><label>Prénom</label> <td> <input type="text" id="Prénom"/> 
<tr><td><label>Nom</label> <td> <input type="text" id="Nom" /> 
<tr><td><label>Mot de passe</label> <td> <input type="text" id="Pass" /> 
<tr><td><label>E-mail</label> <td> <input type="text" id="Mail" /> 
</table> 

然后样式所需的CSS,例如与td:第一个孩子:文本对齐:正确。

这会导致第一列的宽度与最长标签所需的宽度相同。其他方法需要对宽度进行猜测,并且这种方法不够健壮,因为所需的宽度取决于字体。

对于任何后来指责你“使用表格进行布局”的人来说,你可以回答这是一种实际工作的方法,并且没有理由认为这样的表格不能被视为表格数据。