【发布时间】:2014-03-11 00:05:08
【问题描述】:
我有一个包含多列的表格,此表格不应超过一定宽度y。
此表的列由表布局自动调整大小:自动。
但有时列太大(文本不应该被换行,应该被剪裁)并且总宽度大于y。
在这种情况下,我希望“最大”列变得更小,直到列的宽度不再超过 y。
这意味着我不想按某个因素缩小所有列,而是让较大的列“尽可能小”。
这可以通过一些简单的 JS 甚至 CSS 实现吗?
这里是一个例子:
我有 3 列,最大总宽度 y 为 1000 像素。
这里是列内容的大小:
1:100px 2:1100px 3:1300px
这应该会产生一个具有这些宽度的表格:
1:100px 2:450px 3:450px;
这里有一些代码:
HTML:
<div>
<table>
<tr>
<td>SomeText</td>
<td>SomeOtherTextSomeOtherTextSomeOtherText</td>
<td>SomeLongerTextSomeLongerTextSomeLongerTextSomeLongerTextSomeLongerText</td>
</tr>
</table>
</div>
CSS:
div {
border: 1px solid red;
width: 500px;
}
table {
table-layout: auto;
border: 1px solid grey;
}
td {
border: 1px solid black;
}
小提琴:http://jsfiddle.net/6zJR4/2/
在这个例子中,表格比包含的 div 大。 我想要的是表格尊重包含 div 的宽度并且列缩小。但并非所有列都应该以相同的因子缩小,例如小 30%。但较大的列(可能所有列最终都需要缩小)缩小。
我的方法: 我想让浏览器计算列的“理想”大小,然后手动调整大小(=JS)以匹配包含 div 的最大宽度。
我将如何计算不同列的宽度我还不清楚,我为此打开了一个 mathoverflow 问题: https://math.stackexchange.com/questions/702067/how-to-find-a-set-of-ascending-natural-numbers-which-when-added-to-another-set-o
我希望有一个更简单的解决方案。
【问题讨论】:
-
你能提供一个jsfiddle吗?
-
通常表格单元格会缩小/换行文本或任何适合的内容。在您的情况下,我怀疑列中存在导致问题的长字或图像。你能发布一些代码吗
-
我添加了一个示例,希望能清除我想要归档的内容。
-
单元格的内容是全文本还是一些图像?如果您可以将其放在一个简单的小提琴中来演示该问题,那将有所帮助
-
列包含不应换行的文本。在我的示例中,我使用了很长的单个词来表达这一点。
标签: javascript html css html-table