2009-07-16 13 views
2

&をコピーすると、次のマークアップとcssを貼り付けて効果を確認できます。3列の流体レイアウト

「フッター」の部分に問題があります。

"column1"と "column3"は絶対配置されています。

"column2"が最も高い場合にのみ機能します。

「フッタ」をすべての条件でcolumn1〜column3とインターリーブしないようにするにはどうすればよいですか?

マークアップ:

<body> 
<div id="mainwrap"> 
<div id="header"><p>A fluid-width faux-columns example</p></div> 
<div id="contentarea" class="clearfix"> 
<div id="contentarea2" class="clearfix"> 

<div id="column2"> 
<p>This layout uses absolute/relative positioning to position the side columns within 
their respective faux columns containers.</p> 
<p>You can control the maximum and minimum widths of the fluid center area. 
Once the layout reaches its maximum width, it centers itself in the browser as the window 
gets wider.</p> 
<p>Nulla scelerisque. Sed tincidunt. Quisque eu nisl. Phasellus 
    mi ante, aliquet vel, vestibulum sit amet, consectetuer non, ante. Suspendisse 
    consequat condimentum enim. Morbi vestibulum lorem sit amet enim. Nulla venenatis 
    fermentum purus.</p> 
    <p>Nunc justo nisl, vulputate in, sagittis in, pretium sodales, 
    magna. Nullam felis diam, bibendum ut, dictum in, tincidunt vitae, magna. 
    Nunc mattis congue leo.</p> 
</div><!--end column2--> 
<div id="column1"> 
<ul> 
<li><a href="#">Link 1</a></li> 
<li><a href="#">Link 2</a></li> 
<li><a href="#">Link 3</a></li> 
</ul> 
</div><!--end column1--> 
<div id="column3"> 
<p>This template uses the Alsett clearing method.</p> 
</div><!--end column3--> 
</div><!--end contentarea2--> 
</div><!--end contentarea--> 
<div id="footer">This is the footer</div> 
</div><!--end mainwrap--> 
</body> 

CSS:あなただけのCSSでcan't

body {font: 1.0em verdana, arial, sans-serif; 
    text-align:center; 
    } 
* {margin:0; padding:0;} 
div#mainwrap {min-width:780px; max-width:960px; 
    margin-left:auto; margin-right:auto; 
    text-align:left; 
    } 
div#header {height:32px; background-color:#CAF; text-align:center;} 
div#contentarea { background-color:#FFF; 
    background:url(images_pres/faux_left.gif) repeat-y top left; 
    position:relative; 
    } 
div#contentarea2 {background-color:#FFF; 
    background:url(images_pres/faux_right.gif) repeat-y top right; 
    position:relative; 
    } 
div#column1 {width:150px; 
    position: absolute; 
    top:0px; left:0px; 
    background-color:#CCC; 
    overflow:hidden; 
    } 

div#column2 {background-color:#FFF; 
    margin:0 170px 0 150px; 
    } 
div#column3 {width:170px; 
    position:absolute; 
    top:0px; right:0px; 
    background-color:#DDD; 
    overflow:hidden; 
    } 
div#footer {background-color:#FAC; text-align:center; padding-top:6px;} 

div#column1 ul {margin: 20px 0 0 26px;} 
div#column2 p {font-size:.8em; margin:0 30px 1em ;} 
div#column3 p {margin: 20px 10px 0 10px;} 
+0

これはdoctype.com – CarlG

答えて

0

。そのように列を配置すると、もはやドキュメントフローの一部になりません。どちらも効果があります。

サイドカラムの高さを知っている場合や、JavaScriptを使用して最大の高さを計算できる場合は、センターカラムに最小高さを指定できます。または、サイドカラムを浮動させることもできますが、それはhtmlのブロックの特定の順序を指示します。

0

簡単な方法は、フロートを行うことです:ウェブ上の例の数十が960 Grid Systemはこのような何かのための偉大なフレームワークであることがわかりあり

<div style="clear:both;">&nbsp;</div> 

を使用し、その後、すべての3つの中央のdivに残されました。

可能であれば、絶対配置を避ける必要があります。

+0

列1に属し、column2のは柔軟性がありながらColum3は、幅の固定されています。 これを実現するにはfloatを使用しますか? – omg

+0

http://www.alistapart.com/articles/holygrail/にはこれを達成するための素晴らしいチュートリアルがあります。 – Davin

0

をして、あなたのコードを置き換えを検討することができます

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<link href="Styles/Copy%20of%20Site.css" rel="stylesheet" type="text/css" /> 
<body style="height:335px;"> 
<div id="mainwrap"> 
<div id="header"><p>A fluid-width faux-columns example</p></div> 
<div id="contentarea" class="clearfix"> 
<div id="contentarea2" class="clearfix"> 

<div id="column2"> 
<p>This layout uses absolute/relative positioning to position the side columns within 
their respective faux columns containers.</p> 
<p>You can control the maximum and minimum widths of the fluid center area. 
Once the layout reaches its maximum width, it centers itself in the browser as the window 
gets wider.</p> 
<p>Nulla scelerisque. Sed tincidunt. Quisque eu nisl. Phasellus 
    mi ante, aliquet vel, vestibulum sit amet, consectetuer non, ante. Suspendisse 
    consequat condimentum enim. Morbi vestibulum lorem sit amet enim. Nulla venenatis 
    fermentum purus.</p> 
    <p>Nunc justo nisl, vulputate in, sagittis in, pretium sodales, 
    magna. Nullam felis diam, bibendum ut, dictum in, tincidunt vitae, magna. 
    Nunc mattis congue leo.</p> 
</div><!--end column2--> 
<div id="column1"> 
<ul> 
<li><a href="#">Link 1</a></li> 
<li><a href="#">Link 2</a></li> 
<li><a href="#">Link 3</a></li> 
</ul> 
</div><!--end column1--> 
<div id="column3"> 
<p>This template uses the Alsett clearing method.</p> 
</div><!--end column3--> 
</div><!--end contentarea2--> 
</div><!--end contentarea--> 

</div><!--end mainwrap--> 
<div id="footer" style="vertical-align:bottom;margin-top:100px;">This is the footer</div> 
</body> 
関連する問題