2012-10-19 51 views
14

我有width: 100%表,該表與width: 40em; max-width: 100%的元素,但該元素仍然是拉伸表時,瀏覽器窗口變得太小。HTML表 - 最大寬度不上TD後裔工作

我想這個元素是一個固定的寬度,但不能大於容器,如果容器太小。如果沒有足夠的固定寬度的空間,max-width: 100%應該縮小以適應可用空間。這在表格外工作。

請注意,max-width不在表格本身。它實際上是一個<input>元素,儘管我已鏈接的代碼包含一個單獨的表,其中包含一個<span>元素上的相同問題。它還包括表外行爲正確的<input>字段。

link to jsfiddle

回答

20

您應該使用table-layout: fixed爲表元素得到<td>的後裔max-width性質的工作。

MDN

table-layout CSS屬性定義要用於佈局 表格單元格,行和列的算法。

固定值:
表和列的寬度是由表和col元素的寬度,或通過細胞的第一行的寬度設置。 中的單元格不會影響列寬。

table { 
    table-layout: fixed; 
} 

WORKING DEMO

+0

這當然看起來比我的例子更好,它更好地說明了盒子模型的變形(我主要包括完成,以防它們可能成爲問題的一部分)。但它並不能解決我的問題。 – meustrus

+1

我不記得之前爲什麼不起作用,因爲它現在似乎正在按照要求工作。 – meustrus

2

如果你把它的元素,該元素被拉伸到max-width: 100%

如果你想固定的寬度,使用width: 40px(而非%,百分比是在液體佈局中使用)

+0

...你完全改變了我以前的評論無意義的答案。現在它聽起來像你都不明白'max-width'或我正在嘗試做什麼。 – meustrus

+0

哦,好的。你想要達到什麼目標,固定佈局需要指定px。 –

+0

這不是一個頁面佈局。頁面佈局本身允許表格寬度爲流體(100%)。表中的元素是一個輸入字段,它應該以其原始寬度顯示,但如果沒有足夠的空間,它應該縮小以適應可用空間。 – meustrus