我在製作產品比較表。它是一個垂直行的表格,左側的標題和表格內部的垂直行中的兩個或更多產品說明。如果用戶選擇了很多產品,它應該是水平滾動的。如何更改轉置表使其水平滾動?
我已經使用來自this answer的CSS轉置一個表(即創建垂直行)。現在我無法在tbody
的內部添加水平滾動條,以防表格超出預定義的寬度。我正在尋找類似於this question的東西,但適用於我的轉置表。
這是我現在有:JSFiddle這裏就是發生在我限制了表格寬度200像素:
我在製作產品比較表。它是一個垂直行的表格,左側的標題和表格內部的垂直行中的兩個或更多產品說明。如果用戶選擇了很多產品,它應該是水平滾動的。如何更改轉置表使其水平滾動?
我已經使用來自this answer的CSS轉置一個表(即創建垂直行)。現在我無法在tbody
的內部添加水平滾動條,以防表格超出預定義的寬度。我正在尋找類似於this question的東西,但適用於我的轉置表。
這是我現在有:JSFiddle這裏就是發生在我限制了表格寬度200像素:
嘗試的inline-block
S和nowrap
組合:
table { border-collapse: collapse; white-space: nowrap; }
tr { display: block; float: left; }
th, td { display: block; border: 1px solid black; }
tbody, thead { display: inline-block; }
tbody {
width: 300px;
overflow-y: hidden;
overflow-x: auto;
}
<table>
<thead>
<tr>
<th>name</th>
<th>number</th>
</tr>
</thead>
<tbody>
<tr>
<td>James Bond</td>
<td>007</td>
</tr>
<tr>
<td>Lucipher</td>
<td>666</td>
</tr>
<tr>
<td>Jon Snow</td>
<td>998</td>
</tr>
</tbody>
</table>
table
不應該被顯示爲塊,如果沒有必要爲您的其他佈局white-space: nowrap
防止換行tbody
和thead
作爲inline-block
所以現在你可以管理它們像內聯元素。如果你想滾動tbody
唯一沒有thead
,它可能看起來是這樣的:
table { border-collapse: collapse; white-space: nowrap; }
tr { display: inline-block; }
th, td { display: block; border: 1px solid black; }
tbody, thead { display: inline-block; vertical-align: top; }
tbody {
width: 150px;
overflow-y: hidden;
overflow-x: auto;
white-space: nowrap;
}
tbody tr { margin-right: -5px;}
<table>
<thead>
<tr>
<th>name</th>
<th>number</th>
</tr>
</thead>
<tbody>
<tr>
<td>James Bond</td>
<td>007</td>
</tr>
<tr>
<td>Lucipher</td>
<td>666</td>
</tr>
<tr>
<td>Jon Snow</td>
<td>998</td>
</tr>
</tbody>
</table>
你可以想想塊佈局來代替。事實上,你已經實現了itexcept HTML,這是一種壞模式。
這將不是有效的HTML,但你可以用一個div包裝tbody,然後給div的寬度和overflow-x屬性。
在Chrome中無法使用 - http://jsfiddle.net/naXa/cy21bLLp/2/ – naXa
謝謝!我試過你的解決方案。但塊仍然沒有內聯排列,沒有水平滾動 - http://jsfiddle.net/naXa/cy21bLLp/3/ – naXa
我明白了。你已經減少了'tbody'的寬度,並希望只看到'tbody'的scoll欄。我已經對答案進行了改進。 –