2011-06-21 239 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

相關問題