即使一個單元格只包含一個圖像,您也必須知道表格單元格的高度是根據文字基線的位置計算出來的;而當前的文本風格對計算這個基線位置和它之後的行距有影響。 您可能會認爲設置「line-height:1」足以避免這種行間距,即始終出現在每行文本下方的邊距差距。這還不夠。最簡單的解決方案是爲包含圖像的單元格設置「line-height:0.8」(或更低),以便0.2em默認值在基線以下添加間隙(由於缺少文本)將使基線適合細胞高度。然後,您可以正確放置圖像(或任何固定高度的元素)在單元格的高度將決定單元格高度,而不會拉伸單元格高度。
注意:使用此行高度,您將放置在該單元格中的任何文本的基線只位於單元格的底部,以便下行器將與當前單元格的底部填充,邊框,邊框間距重疊,或者在下一行的單元格的邊框,填充或內容中,或者如果單元格位於最後一行,則表格下方的內容。
測試在谷歌瀏覽器(當前版本15)
實施例(HTML5):
<!DOCTYPE html>
<html><head>
<title>Examples of image transforms (rotations and mirroring)</title>
<style>
table,tbody,tr,td,image{margin:0;border:1px solid #999;border-collapse:collapse;border-spacing:0;background:#FFF;color:#000;padding:0;vertical-align:middle;text-align:center;}
td.z{line-height:0;}
</style>
</head><body>
<table border="0" cellspacing="0" cellpadding="0">
<tbody><tr>
<td style="border-bottom:hidden">Normal 0° (1,0,0,1,0,0)</td>
<td style="border-bottom:hidden">Mirrored 0° (-1,0,0,1,0,0)</td>
<td style="border-bottom:hidden">Mirrored 90° (0,1,1,0,0,0)</td>
<td style="border-bottom:hidden">Normal −90° (0,1,-1,0,0,0)</td>
</tr><tr>
<td class="z"><image alt="" src="Avatar-220px.jpg" style="-webkit-transform:matrix(1,0,0,1,0,0);"/></td>
<td class="z"><image alt="" src="Avatar-220px.jpg" style="-webkit-transform:matrix(-1,0,0,1,0,0);"/></td>
<td class="z"><image alt="" src="Avatar-220px.jpg" style="-webkit-transform:matrix(0,1,1,0,0,0);"/></td>
<td class="z"><image alt="" src="Avatar-220px.jpg" style="-webkit-transform:matrix(0,1,-1,0,0,0);"/></td>
</tr><tr>
<td class="z"><image alt="" src="Avatar-220px.jpg" style="-webkit-transform:matrix(1,0,0,-1,0,0);"/></td>
<td class="z"><image alt="" src="Avatar-220px.jpg" style="-webkit-transform:matrix(-1,0,0,-1,0,0);"/></td>
<td class="z"><image alt="" src="Avatar-220px.jpg" style="-webkit-transform:matrix(0,-1,1,0,0,0);"/></td>
<td class="z"><image alt="" src="Avatar-220px.jpg" style="-webkit-transform:matrix(0,-1,-1,0,0,0);"/></td>
</tr><tr>
<td style="border-top:hidden">Mirrored 180° (1,0,0,-1,0,0)</td>
<td style="border-top:hidden">Normal 180° (-1,0,0,-1,0,0)</td>
<td style="border-top:hidden">Normal 90° (0,-1,1,0,0,0)</td>
<td style="border-top:hidden">Mirrored −90° (0,-1,-1,0,0,0)</td>
</tr></tbody>
</table>
</body></html>
註上類 「z」 的表格單元格(線高度:0)的特技僅含有圖像,以便使它們完全適合圖像大小。 本示例中顯示的圖像是8個不同方向的小方形照片。每張照片只有一個薄的1px灰色邊框,並且其上方或下方顯示了其照片,照片恰好適合在單元格邊框內。
請注意,重定向使用WebKit樣式(適用於Safari和Chrome);您可以通過更改前綴來爲IE和Firefox添加等效屬性;對於CSS3,不需要前綴。如果不支持這些轉換,圖像將不會被重新定向/鏡像,但它們仍然適合細胞,沒有額外的內部間隙。
這不是一個真正的選項,因爲在繪製頁面時右列的高度並不真正固定或不明確。 – undefined 2011-05-16 16:57:18
我明白了。我害怕,但我的答案仍然是唯一的答案:只有我提供的解決方法可能會有幫助,否則你將不得不求助於JavaScript或全新的佈局。 – Jeroen 2011-05-16 18:17:36