我现在正在摆弄表格列宽。由于在HTML5中不推荐使用width属性,我试图通过CSS设置表格列宽。但由于某些原因,这不能可靠地工作。
更具体......
我想通过使用表格来构建甘特图(对于那些尚未听说过的人的某种计划表)。每个月都由多个列构成,这些列表示相应月份的天数。标题使用colspan跨越一个月的所有日子。每天应该是10px宽度。因此,跨越31天(例如1月)的TD将使用属性style =“width:310px”进行修饰。
项目任务还包括三个跨栏:第一列是项目开始和任务开始日期之间的未占用时间,第二列是任务处于活动状态的时间,第三列是任务本身结束与整个项目结束日期之间的时间。
我希望这些解释有助于解决我的问题......
奇怪的是,这些列似乎忽略了它们的宽度设置。它在像CloudFox提供的DOM检查器中可见。它没有被删除,因此它被接受并实际用于DOM,但TD的计算宽度并未反映此设置。有些TD较小,有些TD宽于style属性给出的宽度。
我根本就不明白为什么。
那么,有没有办法将一组跨区列的宽度设置为绝对可靠且可重复的固定值?
答案 0 :(得分:0)
表格单元格的宽度计算方式不同。
与width:
设置为黄金的普通元素不同,表格单元格可以根据其内容具有不同的宽度。表格单元格的内容可能永远不会泄漏。因此,如果你有一个更长的单元格,它会扩展宽度,覆盖你的width:
设置,从而"搞乱"其余的细胞也是如此(如果你有所有细胞的固定宽度)。
我的建议:给<table>
本身一个宽度,让它自行排序。结果通常是最佳的。
答案 1 :(得分:0)
正如您在提供的小提琴中所看到的,TH和TD中存在竞争宽度设置。我已经从每个TD中删除了宽度设置,只留下了TH中的那些。有了它,它现在似乎有效。
答案 2 :(得分:0)
在每个TD元素中,插入div并设置所需的宽度。这将确保宽度是固定的。
<table>
<tr>
<td><div style="width: 200px;">Fixed 200px width</div></td>
</tr>
</table>
答案 3 :(得分:0)
在每个td中插入div或<p>
标记并设置div的宽度或<p>
而不是<td>
本身。
我前几天有同样的问题,但现在它正在运作。