我现在正在摆弄表格列宽。由于 width 属性在 HTML5 中被弃用,我试图通过 CSS 设置表格列宽。但是由于某种原因,这不能可靠地工作。
更具体地说...
我想通过使用表格来构建甘特图(对于那些还没有听说过的人来说,这是一种时间表)。每个月都由许多代表相应月份天数的列构成。 header 使用 colspan 跨越一个月的所有天数。每天应该是 10px 宽度。因此,跨越 31 天(例如一月)的 TD 装饰有属性 style="width: 310px"。
此外,元素任务由三个跨越的列组成:第一列是元素开始和任务开始日期之间的空闲时间,第二个跨越的列是任务处于事件状态的时间,第三列是任务本身结束与整个元素结束日期之间的时间。
我希望这个解释能帮助您解决我的问题...
奇怪的是,这些列似乎以某种方式忽略了它们的宽度设置。它在 FireFox 提供的 DOM 检查器中可见。它没有被删除,所以它被接受并在 DOM 中实际使用,但 TD 的计算宽度不反射(reflect)此设置。有些 TD 比样式属性给定的宽度更小,有些更宽。
我就是不明白为什么。
那么,有没有办法将一组跨列的宽度设置为绝对可靠且可重复的固定值?
最佳答案
表格单元格宽度的计算方式不同。
不像普通元素,其中一个 width:
设置是金色的,表格单元格可以根据其内容具有不同的宽度。表格单元格的内容可能永远不会泄露。所以如果你有一个更长的单元格,它会扩大宽度,覆盖你的 width:
设置,因此也“弄乱”了其余的单元格(如果所有单元格的宽度都是固定的)。
我的建议:给出 <table>
本身是一个宽度,让它自己整理出来。结果通常是最佳的。
关于css - 绝对可靠的固定 TD 宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13635553/