2010-11-20 32 views
4

CSSワンダーランド。私の夢は、少なくとも100%レイアウトをスティッキーフッターとヘッダーで理解することです。私はウェブを閲覧していて、それを行うための5つの異なる方法を見つけました。高さ:100%と固定フッターのレイアウト。ファイナルバトル

http://ryanfait.com/sticky-footer/

http://www.visibilityinherit.com/code/height-stickyfooter-centered.php

http://www.cssstickyfooter.com/using-sticky-footer-code.html

http://css-tricks.com/snippets/css/sticky-footer/

http://bonrouge.com/hcf-fluid.php

私は共通のいくつかの種類があることを信じています。私はすべての惑星がそれを知って欲しい!

私はこれらの慣行を深く比較し、それぞれの落とし穴を知ることができます。レイアウトごとにどのような問題が起こる可能性がありますか?内部のフロートなどで壊すことは可能ですか?私はそれをどうしたらいいですか?どのブラウザが対象外ですか?

例はさえIE6は、私がかつて驚くほどすべてのブラウザで動作する素晴らしいテンプレートを見つけ

+0

ええと...私はCSSを嫌いです。そして、これが理由です。それは、あなたが良い答えを得ることを願っています。 –

+8

なぜ誰かがこの質問に時間を費やしたいと思うのか分かりません。ちょうど最初のオプションを選択して使用してください。長い間それを使用していたし、問題がなかった。 IE6を含むすべての一般的なブラウザで動作します。 – Tom

+2

大学の論文の時代が戻ってきました! =) – SuperDuck

答えて

2

共通Aこれらのスペクトラムは、マージンが要素の高さに含まれておらず、負である可能性があるということです。高さを100%に設定すると、コンテンツラッピングdivの高さが画面と同じ高さに設定されます。要素に負のマージンを適用すると、要素内で次の兄弟が始まることを意味します。

最初の例では、コンテンツラッパーはdiv#wrapperで、その次の兄弟はdiv#footerです。まず、ラッパーの高さを画面の高さに設定します(高さを#wrapper、body、htmlに100%適用します)。これにより、ラッパーはビューポート全体とフッターを見えなくします。 #footerの高さに等しい値の負のマージンを適用すると、フッタ要素がページの上に移動して、ビュー内に戻るようになります。

0

を必要としている、私はリンクを覚えているが、ここではそれのためのCSSとHTMLであるカント:

CSS:

body, html{ 
height: 100%; 
} 

body, p { 
margin: 0; padding: 0; 
} 

#wrapper { 
min-height: 100%; 
} 

* html #wrapper { 
height: 100%; 
} 


/*HEADER------------------------------------*/ 
#header { 
width: 100%; 
background: #666; 
} 

#header_900 { 
width: 960px; 
height: 100px; 
margin: 0 auto; 
position: relative; 
overflow: hidden; 
} 

/*FOOTER------------------------------------*/ 
#footer { 
width: 100%; 
height: 100px; 
margin: -100px auto 0 auto; /*THIS SHOULD BE EQUAL TO THE FOOTERS HEIGHT*/ 
position: relative; 
background: #666; 
} 

#footer_900 { 
width: 960px; 
height: 100px;/*THIS IS THE FOOTERS HEIGHT*/ 
position: relative; 
margin: 0 auto; 
} 

/*CONTENT------------------------------------*/ 
#content { 
width: 100%; 
padding-bottom: 100px; /*THIS SHOULD BE EQUAL TO THE FOOTERS HEIGHT*/ 
} 

#content_900 { 
width: 960px; 
margin: 0 auto; 
overflow: hidden; 
} 

そしてここにHTMLである:

<body> 

<div id="wrapper"> 


    <div id="header"> 
     <div id="header_900"> 
      <p>header</p> 
     </div><!--header_900--> 
    </div><!--header--> 


    <div id="content"> 
     <div id="content_900"> 
      <p>content</p> 
     </div><!--content--> 
    </div><!--content--> 


</div><!--wrapper--> 


<div id="footer"> 
    <div id="footer_900"> 
     <p>footer</p> 
    </div><!--footer_900--> 
</div><!--footer--> 


</body> 
+0

awhh。私はこれがcontent divを100%伸ばしたと思った。しかし、背景色を変更した後は、それが表示されないことがあります。 これは本当にRyan Faitの解決策ではありません=(ああ。 – Partack

関連する問題