[英]HTML5 Table cell padding - different in browsers
我把它簡化為一個相當簡單的例子。
對我來說,它在Chrome 7.0中與在Firefox 3.6.12中看起來不同。 IE 9 beta看起來像Chrome。
我希望能夠在TD上設置填充,並使其在所有瀏覽器中以相同的高度渲染。 目前,使用10px頂部填充,Chrome中的單元格看起來比Firefox更高。
我嘗試過使用Eric的重置css,它不會改變結果任何想法為什么這些都被渲染得不同?
它的外觀如下所示 - http:// yfrog。 COM / 5zqa7p
而代碼......
<!DOCTYPE html>
<head>
<title>padding test</title>
<meta charset=utf-8>
<style>
td { width: 100px; height:100px; background: green; padding: 10px 0 0 0; }
</style>
</head>
<body>
<table>
<tr><td>TEST</td></tr>
<tr><td>TEST</td></tr>
</table>
</body>
Firefox和Chrome在HTML5中的表格單元格中處理填充的方式顯然存在錯誤: http : //code.google.com/p/chromium/issues/detail? id = 50633
當您嘗試使用0填充的標記和CSS時,它們是相同的。 當您將DOCTYPE切換為非HTML5時,它們也是相同的。
對於HTML5,如果line-height是默認值,某些瀏覽器會向帶有圖像的表格單元格添加2px。 它被標記為一個錯誤,不要指望它總是像這樣。
table { line-height: 0; }
實際上,此行為是由TD元素上的box-sizing
值的不同默認值引起的。 看看規范: http : //www.w3.org/TR/css3-ui/#box-sizing0
所有主流瀏覽器都支持box-sizing,請參閱http://caniuse.com/#search=box-sizing
但是瀏覽器存在一些問題,阻止您覆蓋默認box-sizing
值,尤其是當您使用TD時,瀏覽器的行為幾乎是不可預測的。
在這個JSFiddle示例中 ,跨瀏覽器的最穩定行為由DIV元素上的border-box
和content-box
顯示。
因此,只要在高度固定時避免使用填充,而只需使用額外的填充容器包裝TD內容作為簡單的防彈解決方法。
希望這可以幫助!
td { padding: 10px 0 0 0; }
這說: padding-top: 10px;
,將10px替換為0, 希望它們是相同的。 這意味着Firefox和IE9不考慮填充。 (我認為)
它應該寫成這樣的padding: 0 10px 0 10px;
否則瀏覽器不會完全支持維度。
我發現Firefox的瀏覽器特定CSS( 從這里開始 )有點描述性:
background-color:#447d9a;
background-image:url('img/bg.jpg');
background-repeat:repeat-x;
所以,我認為,對於firefox,填充可以描述相當簡短( padding:10px 0 0 0;
):
padding-top: 10px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
它只是Firefox的解決方案(或者可以是解決方案); 並可以為其他瀏覽器專門調試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.