編集2:
問題は、ルールの「bigTable」要素にあるようです。どうやらこれはlayout-templateで使用されたときに間違ったmin-widthを継承していました。私はまだこれを調査しています。
それでも、divをもう一度試してみます。大きな問題の1つは、固定ナビゲーションと動的コンテンツの使用でしたが、私はすでにこのための聖杯ソリューションを見つけました(http://alistapart.com/article/holygrail)。
提案とすべての素敵なトロロロロをありがとう。
編集:
この問題をhttp://jsbin.com/eyitij/4/editに複製しました
テーブル+td幅に奇妙な問題があります。私はこれに似たコードを持っています:
<table class="mainLayout" style="width: 100%;">
<tr>
<td style="width: 250px;">
<div id="leftNavigationPanel"> * content * </div>
</td>
<td id="panelCell">
<div class="panel">
<table id="bigTable" width="100%"> * LOTS OF CONTENT, includes big table * </table>
</div>
</td>
<tr>
</table>
このコードをブラウザで実行すると、mainLayoutがオーバーフローするため、3600pxになります。これは、Panel内の大きなテーブルが原因で発生します。
私が参照している大きなテーブルは、画面内に含めることができます。そうすると、水平スクロールバーが表示されます(これが私が欲しいものです)。これは、big-tableがルール「width:100%」で別のhtmlファイルにロードされている場合に機能します。
mainLayoutにルール「display:block;」を追加した後、mainLayoutテーブルは〜1800pxにレンダリングされ、画面内に含まれますが、問題は「panelCell」-TDの幅が〜3400pxのままであるため、ページ全体をスクロールし続けていることです。 .TDはテーブルに含まれていませんが、常に250px + bigTable.width()に展開されます!?
基本的に、ブラウザは「panelCell」を計算して、window.width--leftNavigationPanelのみを埋める方法を知りません。
javascript +「panelCell」の事前計算された最大幅ルールを使用せずに正しいルールを作成する方法はありますか?
- panelCellはウィンドウ内に含まれている必要があります
- bigTableは、スクロールバーを使用してpanelCell内に含まれている必要があります