我有一个td
,其内联样式将其width
设置为百分比。我可以修改css而不是html。
如何使td
仅占用其内容所需的宽度?
以下CSS不起作用:
td#my
{
width: auto !important;
}
答案 0 :(得分:1)
您需要尊重CSS特性规则。 (这样做可以避免使用!important)
http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/
内联样式的重量为1000,其中ID为100,元素为1.因此,为了确保正确使用css规则,您需要密切注意这一点。上面链接的文章在解释特异性方面做得比我希望实现的要好得多。读它,研究它,爱它。
如果这不直接回答您的问题:它是一篇内容丰富的文章,实际上可以通过允许您采取不同的路线来解决您的问题。
答案 1 :(得分:1)
默认情况下,表格单元格是自动宽度,但它们会占据列中最宽单元格的最小宽度。所以以此为例
td1|td2|td3|
1 |2 |3 |
基于第一行,这些单元格的宽度都相同。我无法想到强迫它这样做:
td1|td2|td3|
1|2|3|
这听起来像是你要做的,而不是无论如何都要改变HTML。
答案 2 :(得分:0)
您可能还必须对表的其他单元格的css进行一些更改。深入了解以下内容,了解如何计算单元格宽度
来自:w3.org/TR/CSS21/tables.html#width-layout
列宽如下确定:
计算每个单元格的最小内容宽度(MCW):格式化 内容可能跨越任意数量的行但可能不会溢出单元格 框。如果单元格的指定“宽度”(W)大于MCW,则W 是最小单元格宽度。值'auto'表示MCW是 最小单元宽度。 块引用
另外,计算每个单元格的“最大”单元格宽度:格式化 内容不会破坏除明确换行之外的行 发生。
对于每列,从中确定最大和最小列宽 仅跨越该列的单元格。最低要求是 最小单元格宽度最大的单元格(或“宽度”列, 以较大者为准)。最大值是单元格所需的最大值 最大单元格宽度(或“宽度”列,以较大者为准) 更大)。
对于跨越多个列的每个单元格,请增加最小值 它跨越的列的宽度,以便它们在一起,至少是 像细胞一样宽。对最大宽度执行相同操作。如果可能的话, 扩大所有跨栏列的数量大致相同。
- 醇>
对于“宽度”不是“自动”的每个列组元素, 增加它跨越的列的最小宽度,以便一起 它们至少与列组的“宽度”一样宽。
这为每列提供了最大和最小宽度。
答案 3 :(得分:-1)
尝试:
td#my {width:inherit !important;}
或
td#my {width:0% !important;}