私たちのアプリケーションは、レイアウトと配置にテーブルを多用しており、これまではIE(クァークズモード)のみでした。今後は、クァークズモードから抜け出し、テーブルをdivとよりセマンティックなレイアウトに置き換えようとしています。
私たちを止めているのはheight=100%
、テーブルの行に設定し、その行に残りの垂直方向のスペースを占めるようにするクァークズモードの「機能」です。これまでのところ、テーブルの有無にかかわらず、クァークズモードの外でこれを行う方法を見つけることができませんでした。
これは、ページの本文で使用しているコードです。ここにはスタイリングは表示されていませんが、効果は同じです。
<table width="100%" height="100%" border="0">
<tr>
<td>
<table width="100%" height="100%" border="1">
<tr>
<th>This is my header bar</th>
</tr>
</table>
</td>
</tr>
<tr height="100%">
<td>
<table width="100%" height="100%" border="1">
<tr>
<td>This is my main section bar</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table width="100%" height="100%" border="1">
<tr>
<td>This is my footer bar</th>
</tr>
</table>
</td>
</tr>
これは、Quirksモードでの外観です。中央の行(とheight="100%"
)は、残りの垂直方向のスペースを占めるように拡張されていることに注意してください。
標準モードでは、次のような同じコードがレンダリングされます。
jsFiddleとコード:http : //jsfiddle.net/RBeWN/3/(iFrameなどの理由により、コードはjsFiddleでは実際にはクァークズモードでレンダリングされませんが、開発ツールを使用して強制することができます)。
sといくつかのcssでこれを実行しようとしましdiv
たが、機能しません:http: //jsfiddle.net/BVMhR/3/。メインdivを設定して、残りのスペースを取るのではなく、親と同じ高さにしheight: 100%;
ます。設定box-sizing: border-box;
もこれに違いはありません。
誰かが私がこの問題の解決策を見つけるのを手伝ってもらえますか?可能な限りjavascriptなしで実行できるようにしたいのですが、Javascriptが必要な場合は、すべてのページで実行できる汎用ソリューションである必要があります。これにより、設定のための開発オーバーヘッドがあまり発生しなくなります。上。