我有一个流体设计的表格,由一系列标签和字段组成,我希望它们一个接一个地流动,并在必要时包裹以支撑窗口的宽度.(标签和输入必须作为一个单元流动,在一行的末尾没有悬挂标签,其输入在下一行.)但是当它们换行时,我希望这些字段以整齐的方式排列.有没有办法用HTML和CSS做到这一点?(不幸的是,我必须支持没有CSS3列的旧浏览器[如果他们甚至在这里帮助].)
我尝试了几件事,比如给标签(好吧,跨度)一个固定长度(你要点击代码片段中的"全屏"按钮,这样片段窗口宽度不固定):
.wrapped-fields label {
display: inline-block;
}
.wrapped-fields label > span {
display: inline-block;
width: 8em;
white-space: nowrap;
}Run Code Online (Sandbox Code Playgroud)
<form class="wrapped-fields">
<label>
<span>Short:</span>
<input type="text" size="5">
</label>
<label>
<span>Long label for field:</span>
<input type="text" size="5">
</label>
<label>
<span>Medium label:</span>
<input type="text" size="5">
</label>
<label>
<span>Short:</span>
<input type="text" size="5">
</label>
<label>
<span>Long label for field:</span>
<input type="text" size="5">
</label>
<label>
<span>Medium label:</span>
<input type="text" size="5">
</label>
</form>Run Code Online (Sandbox Code Playgroud)
......但由于以下几个原因,这是不能令人满意的:
它要求我为标签跨度设置固定大小,但这些标签的名称可以来自配置,因此我不希望在运行时测量每个标签并将固定大小调整为最大.
当它们堆叠在每列中最长的标签时看起来没问题:
......但是当它们不是时很可怕,例如:
...要么:
理想情况下,每个"列"将采用其中最长标签或字段的大小(尽管现在所有字段的大小相同),相应地,标签+字段对包装.
如果没有HTML/CSS解决方案,是否有一个简单的JavaScript解决方案?(如果没有,我会写一个复杂的;不要求人们做大量的代码,如果那就是它.)
如果相关:
我正在使用Bootstrap,所以如果网格系统有帮助(我没有运气),我们可以使用它 …