如何在不使用表的情况下设计两个列表单布局

时间:2011-07-04 13:01:38

标签: javascript html css forms webforms

我通过循环遍历下面的表单变量来生成html表单

{% for field in form %}
 {{ LABEL }}{{ INPUT FIELD }}

标签和字段经过循环。我可以通过

生成简单的一列
 {% for field in form %}
     <div>{{ LABEL }}</div><div>{{ INPUT FIELD }}</div>

但我有20个字段,所以我希望有2列布局,上面的文字和下面的字段。但我不知道我怎么能在循环中做到

3 个答案:

答案 0 :(得分:3)

不是将每个项目包装在div中,而是将要保留的项目包装起来:

{% for field in form %}
    <div>{{ LABEL }}{{ INPUT FIELD }}</div>

然后在你的CSS中做这样的事情:

form { width: 800px; /* or whatever */ }
form > div { display: inline-block; width: 50%; }
label, input { display: block; }

您可能需要调整宽度以考虑填充,边距等。表单字段将在两列中从右向左和向下流动。

答案 1 :(得分:0)

我们应该使用CSS设置标签和输入字段的样式。 A List的“Gurus”标准指令分开:http://www.alistapart.com/articles/prettyaccessibleforms

但是,这会打破标签长度超过一行的表单。

同样流行的是在定义列表中包装标签和元素(而不是使用div元素)。您可以在此处阅读如何设置此类表单的样式:http://aspnetresources.com/blog/styling_definition_lists 如果这样的HTML仍然是语义上的争论,那么请注意HTML标准书呆子。

答案 2 :(得分:-1)

您可以使用css的“float”属性在两列中排列控件...

检查一下: http://www.w3schools.com/cssref/pr_class_float.asp