次の方法で共有


Internet Explorer 標準モードでの予期しないテーブルの高さの計算

警告

廃止され、サポート対象外となった Internet Explorer 11 デスクトップ アプリケーションは、特定のバージョンの Windows 10 で Microsoft Edge の更新プログラムを通じて完全に無効になります。 詳細については、「Internet Explorer 11 デスクトップ アプリの廃止に関する FAQ」をご覧ください。

この記事では、Internet Explorer のテーブル セル内の <div> タグに相対的な高さを使用すると、テーブルのサイズが変更される設計上の動作について説明します。

元の製品バージョン: Internet Explorer
元の KB 番号: 2778473

まとめ

テーブル セル内の <div> タグに相対的な高さを使用している場合は、Internet Explorer の標準モードと風変わりなモードで異なるレイアウト動作が発生する可能性があります。 例えば次が挙げられます。

<!DOCTYPE HTML>
<html>
    <body>
        <div style='height: 75px'>
            <table style='height:100%'>
                <tr>
                    <td>Row 1</td>
                </tr>
                <tr>
                    <td style='height:100%'>
                        <div style='height:100%'>Row 2</div>
                    </td>
                </tr>
            </table>
        </div>
    </body>
</html>

開発者ツールを使用してドキュメント モードを切り替えると、レイアウトを確認するときに異なる動作が表示されます。

上記の例では、風変わりなモードでは、テーブルは周囲の <div> 要素の高さ (75 ピクセル) を取得します。 2 番目の行は残りの高さをすべて受け取り、テーブル自体のサイズは変更されません。

標準モードでは、テーブル行 2 (行 2) の内部 <div> タグが、計算された高さを、絶対高さ (75 ピクセル) の最初の親から取得するため、テーブルのサイズが変更されます。 これにより、両方の行が最初に指定された高さに収まらないため、テーブル全体のサイズが変更されます。

詳細

この動作は仕様であり、2006 年に Internet Explorer 7 で導入されました。 Microsoft 以外の Web ブラウザーでも、さまざまな動作が表示される場合があります。 現在、CSS とテーブルだけを使用してこの動作を変更する方法はありません。 この動作は、標準モードでのテーブル モデルの制限と見なされます。 CSS テーブル モデルでは、実際には、このシナリオが想定どおりに動作することを防ぎます。

互換性上の理由から、これをサポートするのは、クイックモードとクイックモード エミュレーション (QME) のみです。