内嵌表单字段,标签位于顶部

时间:2010-06-14 23:21:36

标签: html css forms

我无法相信我不得不问这个问题,但是我的智慧结束了。

我正在尝试在线显示2个表单字段,但每个字段的标签位于顶部。在ascii艺术:

Label 1      Label 2
---------    ---------
|       |    |       |
---------    ---------

应该很简单。

<label for=foo>Label 1</label>
<input type=text name=foo id=foo />

<label for=bar>Label 2</label>
<input type=text name=bar id=bar />

这会让我:

        ---------           ---------
Label 1 |       |   Label 2 |       |
        ---------           ---------

要将标签放在方框的顶部,我添加display = block:

<label for=foo style="display:block">Label 1</label>
<input type=text name=foo id=foo />

<label for=bar  style="display:block">Label 2</label>
<input type=text name=bar id=bar />

执行此操作后,标签就在我想要的位置,但表单字段不再是内联的:

Label 1  
---------
|       |
---------

Label 2  
---------
|       |
---------

我一直无法找到一种方法来包装我的html,因此字段显示为内联。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:25)

我会将每个输入放在display:inline-block的范围内,如下所示:

<span style="display:inline-block">
    <label for=foo style="display:block">Label 1</label>
    <input type=text name=foo id=foo />
</span>

<span style="display:inline-block">
    <label for=bar  style="display:block">Label 2</label>
    <input type=text name=bar id=bar />
</span>

答案 1 :(得分:17)

您可以使用标签将输入括起来,然后使用CSS:

label{display:inline-block;}
input{display:block;}
<label>Label 1<input type=text name=foo id=foo /></label>
<label>Label 2<input type=text name=bar id=bar /></label>