2011-06-21 201 views
12

我有一个表格,我想定义min-widthmax-height属性。见下面的例子。表格属性的最小宽度和最大高度

我现在的问题是浏览器不接受它。如果我在td上定义它,它会被忽略,如果我在td元素中的div元素中定义它,则内容具有正确的最小和最大宽度,但该表仍具有相同的大小。 (所以有很多可用空间:/)

我该如何解决这个问题?

编辑: 我刚刚注意到,问题似乎只发生在表格处于全屏模式时。尽管如此,一个元素不应该超过最大宽度!

实施例:

<html> 
<head> 
    <style type="text/css"> 
     td { 
      border: 1px solid black; 
     } 

     html,body,.fullheight { 
      height: 100%; 
      width: 100%; 
     } 
     .minfield { 
      max-width: 10px; 
      border: 1px solid red; 
      overflow: hidden; 
     } 
    </style>  
</head> 

<body> 
    <table class="fullheight"> 
     <tr> 
      <td class="minfield"> 
       <div class="minfield"> 
        <p>hallo</p> 
       </div> 
      </td> 
      <td><p>welt</p></td> 
     </tr> 
    </table> 
</body> 
</html> 

回答

25

对于表细胞“width”属性应该使用,作为“最小宽度”和“最大宽度”是未定义的表格单元。请参阅specification

“在CSS 2.1中,对表,内联表,表格单元格,表格列和列组中的'min-width'和'max-width'的影响未定义。

要强制宽度,您可以尝试将table-layout属性更改为“固定”。该规范非常清楚地描述了该算法。

+0

感谢:/我想...简单的任务,但不能用CSS :(,也许有人postes的解决方案:) – Stefan

+0

为什么你认为这是不可能的CSS?如果我在代码中将'min-width'更改为'width',则第一列非常薄,第二列很宽。什么不适合你的情况?请注意'宽度'应该应用于'td',而'max-width'仍然与'div'完全相符。 – Arsen7

+0

好,divs工作:),但不是我想要的:( – Stefan

-1

我没有看到为表和单元格设置最小宽度的问题。看到这个jsFiddle

HTML:

<table style="border:solid 1px #000;"> 
    <tr> 
     <td id="cell-one" style="border:solid 1px #000;"> 
      test 1 
     </td> 
     <td style="border:solid 1px #000;"> 
      test 2 
     </td> 
    </tr> 
</table> 

和CSS:

table{width: 90%;} 
td#cell-one{min-width: 20%;} 

记住,最小宽度取决于宽度(或最大宽度)。最大宽度覆盖宽度,最小宽度覆盖宽度或最大宽度。换句话说,一定要设置在元素的父width属性应用最小宽度:jsFiddle

+0

这不起作用;在你的例子中单元格宽度总是50/50,这是因为根据规范,“min-width”和“max-width”对表格单元格没有影响。 – Slight

4

要强制TD最小高度属性,你也可以把不可见的图像中TD,或包装材料你td到div。 举例第一种情况:

<td><img style="float:left;min-height:50px;visibility:hidden;width:0px;">12345</td> 
+3

为什么不...小提琴:http://jsfiddle.net/LpLDq/ – Stefan

+0

这是唯一对我有用的工具,用于获取宽度可变的表格中的单元格来表示最小宽度值。非常感谢。 – JosephK

相关问题