左中右アダプティブ幅レイアウト(両側固定中間アダプティブ)



CSS三段レイアウトの場合は、左右に幅を固定し、中間に幅を合わせます。


一、絶対位置決めを使用する。


絶対位置決めには左右の余白を設定する必要があります(実際の応用では、相対的に位置決めされた箱を外にカバーする必要があることが多い).全体のDemoは以下の通り(FirefoxとIE 5.5-8のテストに合格した):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>    </title>
<style type="text/css">
* { margin:0; padding:0; }
#main { position:absolute; left:200px; right:200px }/*    , content   html     ,    left,right   */
#left, #right { width:200px; }
#left { float:left; }
#right { float:right; }
</style>
</head>
<body>
<div id="main">
<p style="height:999px; background:#fffaba; ">content</p>
</div>
<div id="left">
<p style="height:999px; background:#8fc41f;">left</p>
</div>
<div id="right">
<p style="height:999px; background:#00b7ef;">right</p>
</div>
</body>
</html>

二、Main左フローティング。


Mainフローティングの場合はまず幅適応の問題を解決し、幅100%表示を設定してからLeftをMain左側に引っ張らなければなりません.ここでは2つのオフセット方法を巧みに使用します.IE 6は互換性に問題があるので、Hackが必要です.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>    -    </title>
<style type="text/css">
* { margin:0; padding:0; }
#wrap { padding:0 300px 0 200px; *overflow:hidden;  }
#main { float:left; width:100%; }
#left, #right { position:relative; _display:inline; }
#left { width:200px; float:left; margin-left:-100%; right:200px; _right:-300px; }
#right { width:300px; float:right; margin-right:-300px; }
</style>
</head>
<body>
<div id="wrap">
 <div id="main">
 <p style="height:999px; background:#fffaba; ">content</p>
 </div>
 
 <div id="left">
 <p style="height:999px; background:#8fc41f;">left</p>
 </div>
 <div id="right">
 <p style="height:999px; background:#00b7ef;">right2</p>
 </div>
</div>
</body>
</html>

サイドバー幅固定については、主要部分の幅適応レイアウトが一般的ですが、ほとんどの人はサイドバーを適応ボックスの前に置いてフローティング解決を行い、最適化されたhtmlドキュメントストリームを使用してこのレイアウトを完了することを考えたことがありません.第1の方法は絶対位置決めを用いるため,特殊な応用で使用するのに適しており,従来のレイアウトでは第2の解決を推奨している.