右側にサイドバーがあり、メイン コンテンツがサイドバーの周りを流れる Web ページ レイアウトを作成したいと考えています。
要件:
- サイドバーの下のコンテンツは、使用可能な幅をすべて占有する必要があります
- サイドバーの下のコンテンツは、サイドバーの左側に到達したときに折り返されるべきではありません
- メイン コンテンツは、マークアップのサイドバーよりも前に配置する必要があります
- サイドバーの幅は固定ですが、高さは不明/可変です
- CSS のみ - JavaScript ソリューションなし
これは、3 番目の要件なしで達成できます。サイドバーがマークアップのメイン コンテンツの前にあり、同じ要素内にある場合、単純な右フロートが機能します。ここでは、マークアップのメイン コンテンツの前にサイドバーを配置することはできません。サイドバーには、補足情報と広告が含まれます。これがマークアップのメイン コンテンツの前にある場合、CSS を使用しないブラウザーやスクリーン リーダーのユーザーにとっては煩わしいものになります (「スキップして ...」リンクがあっても)。
これは、4 番目の要件がなくても達成できます。サイドバーの高さが固定されている場合、コンテンツを含む要素をメイン コンテンツの前に配置し、右にフロートさせて適切な幅と高さを与え、絶対配置を使用してサイドバーを事前に作成されたスペースの上に配置できます。
マークアップの例 (CSS なし、関連するビットのみ):
<body>
<div id="content">
<p>
Lorem ipsum ....
</p>
<p>
Pellentesque ....
</p>
<div id="sidebar">
/* has some form of fixed width */
</div>
</div>
</body>
レイアウト例:
代替テキスト http://webignition.net/images/layoutexample.png
これが可能かどうかはわかりません。これは達成できないという信頼できる回答を喜んで受け入れます。これが達成できない場合は、説明をいただければ幸いです。達成できない理由を知ることは、単にできないと言われるよりもはるかに価値があります。
更新: 5 つの要件のすべてを満たしていない回答が表示されることを嬉しく思います。ただし、どの要件が無視されているか、および要件を無視した場合の結果 (長所と短所) が回答に記載されている場合に限ります。その後、情報に基づいた妥協を行うことができます。
更新 2 : 要件 3 を無視することはできません。サイドバーをコンテンツの前に置くことはできません。