【发布时间】:2013-11-26 04:07:11
【问题描述】:
假设我有一个如下表:
|<-- Fixed width ->|
|<- group width ->|<- group width ->|
--------------------------------------------------------------------
| Label 1 | Input 1 | Label 2 | Input 2 | Filler (auto-expand) |
| Label 3 | Input 3 | Label 4 | Input 4 | |
| Section header (colspan=5) |
--------------------------------------------------------------------
| Label 5 | Input 5 | Label 6 | Input 6 | |
| Label 7 | Input 7 | Label 8 | Input 8 | |
--------------------------------------------------------------------
我将如何设置它的样式,以便每个列组具有固定的宽度,但每个组下的各个列会自动调整,如下所示:
- 标签列调整为在不换行的情况下显示该列文本所需的最小宽度
- 输入列扩展以填充组宽度减去标签列宽度的剩余空间。
例子:
|<-- Fixed width ->|
|<- group width ->|<- group width ->|
--------------------------------------------------------------------
| Label 1 | Input 1 | Label 2 | Input 2 | Filler (auto-expand) |
| Label 3.. | Input 3 | Label 4 | Input 4 | |
| Section header (colspan=5) |
--------------------------------------------------------------------
| Label 5 | Input 5 | Label 6 | Input 6 | |
在上面,包含标签 1、3 和 5 的标签列已调整为所有文本不被截断显示所需的最小宽度(标签 3 的宽度)。同时,相应的输入列也进行了调整,使组宽保持不变。
我有一个结构和初始 css here 的 jsfiddle。
如果需要,请随意调整结构,但我希望对其进行最小的更改。我希望只需更改 html 结构和 css 就可以做到这一点。
我也欢迎 jquery 解决方案。虽然我还应该提到标签/输入行可以动态添加,并且列需要适当调整(所以我不能只在初始文档加载时设置固定宽度)。
如果这也可以更改为不再需要表格,那就更好了。
【问题讨论】:
-
在每个组中嵌套表不会做你想要的吗?然后在父表列上设置固定宽度
-
它会,除了每隔一段时间我会有跨越一整行的节标题(如上)。这意味着我需要将嵌套表切割成两行(一节标题之前,另一行之后)。如果我这样做了,除了为两者定义固定宽度之外,我不能保证两个嵌套表的列宽保持一致。
-
jsfiddle.net/vin_g/Lvy7G/1 显示了这个问题。在小提琴中,标签 1 和 3 的宽度正确,但在节标题之后,标签 5 的宽度不同。
-
@Vin-G 请看看我的回答。我想这会有所帮助。
标签: javascript jquery html css