【发布时间】:2016-08-30 21:30:11
【问题描述】:
我在对齐表单中的标签和输入字段时遇到问题。我一次又一次地得到这样的结果:
这是用 HTML 生成的,如下所示:
...
<ul>
<li>
<label for="STREET">Street</label>
<input data-val="true" data-val-required="The Street field is required." id="STREET" name="STREET" type="text" value="P.O. Box 1053" />
</li>
<li>
<label for="SUITE">Suite</label>
<input id="SUITE" name="SUITE" type="text" value="" />
</li>
<li>
<label for="city">City</label>
<input data-val="true" data-val-required="The City field is required." id="city" name="city" type="text" value="Dalton" />
</li>
...
当然,我的问题是标签和输入不对齐,所以显示都是锯齿状的,等等。我个人可以想到很多方法来解决这个问题,使用表格,设置一堆 div,然后选择宽度等,以便一切都正确排列。
并不是说这些方法不起作用,而是它们似乎更像是一种破解而不是真正的解决方案,然后如果标签文本/字体发生变化等,我最终不得不操纵标签宽度.
有没有更简单的方法来解决这类问题,同时保留简单的 HTML / CSS,还是我应该坚持硬编码宽度、div、使用表格等的经典方法?
【问题讨论】:
-
我可能会为此被扔石头,但我会使用桌子。不是真正的 hack,而且很容易维护。
-
表格是一种方式,在标签上设置最小宽度或将输入浮动到右侧是其他方式。
-
@YuriyGalanter 我和你在一起。 CSS 人群总是抱怨表格,但很少提供始终如一且可预测的东西。
-
表格用于表格数据,您在此处拥有:一列标题 (
) 和一列数据。 @Ennui 有数百种 CSS 无法做到的事情(因为它的缺点),而一张表格可以做到。这是一个:stackoverflow.com/questions/19458993/…。此外,最终用户并不关心它是否是一个表格,这留给 CSS 粉丝。