2016-05-29 4 views
0

私はブラウザ間で異なった振る舞いを見出しています。私は、動的に幅が親DIVから計算しなければならないので、生成されたテーブルを持っている:style = 'width:100%;'のブラウザ間で不一致CSS表示の定義がある場合

<html> 
<body> 

<div style='width:800px; border:1px dotted blue;'> 

<table style='width:100%; display:inline-block; font-size:40px;'> 
<tr><td>1</td><td align=right>2</td></tr> 
</table> 

<table style='width:100%; display:inline; font-size:40px;'> 
<tr><td>1</td><td align=right>2</td></tr> 
</table> 

<table style='width:100%; display:block; font-size:40px;'> 
<tr><td>1</td><td align=right>2</td></tr> 
</table> 

<table style='width:100%; font-size:40px;'> 
<tr><td>1</td><td align=right>2</td></tr> 
</table> 

</div> 
</body></html> 

SafariとOperaは正しくDIVの右の境界にある列「2」を示します。 ChromeとFirefoxでは、ディスプレイの定義がある場合は幅:100%が無視されます。 4番目のケースでは、表示定義がなく、テーブルが正しくレンダリングされます。

理由は何ですか?

答えて

0

すべてのテーブルの幅は800pxです。しかし、ChromeとFFでは、tbody要素の幅は、親要素の100%ではないため、table要素のdisplayプロパティはデフォルト要素ではありません。

テーブルの表示プロパティがデフォルトのものでない場合に、tbody要素の幅がどのようになっているかに関するW3Cの定義はありません。これは、異なるブラウザで異なる実装を奨励します。

関連する問題