将td的宽度设置为auto?

时间:2012-12-13 15:28:31

标签: css

我有一个td,其内联样式将其width设置为百分比。我可以修改css而不是html。

如何使td仅占用其内容所需的宽度?

以下CSS不起作用:

td#my 
{
    width: auto !important;
}

4 个答案:

答案 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

  

列宽如下确定:

     
      
  1. 计算每个单元格的最小内容宽度(MCW):格式化   内容可能跨越任意数量的行但可能不会溢出单元格   框。如果单元格的指定“宽度”(W)大于MCW,则W   是最小单元格宽度。值'auto'表示MCW是   最小单元宽度。   块引用

         

    另外,计算每个单元格的“最大”单元格宽度:格式化   内容不会破坏除明确换行之外的行   发生。

  2.   
  3. 对于每列,从中确定最大和最小列宽   仅跨越该列的单元格。最低要求是   最小单元格宽度最大的单元格(或“宽度”列,   以较大者为准)。最大值是单元格所需的最大值   最大单元格宽度(或“宽度”列,以较大者为准)   更大)。

  4.   
  5. 对于跨越多个列的每个单元格,请增加最小值   它跨越的列的宽度,以便它们在一起,至少是   像细胞一样宽。对最大宽度执行相同操作。如果可能的话,   扩大所有跨栏列的数量大致相同。

  6.   
  7. 对于“宽度”不是“自动”的每个列组元素,   增加它跨越的列的最小宽度,以便一起   它们至少与列组的“宽度”一样宽。

  8.         

    这为每列提供了最大和最小宽度。

答案 3 :(得分:-1)

尝试:

td#my {width:inherit !important;}

td#my {width:0% !important;}