固定位置のヘッダー(動的な高さ)があります。
ヘッダーのすぐ下にコンテナdivを配置する必要があります。ヘッダーの高さは動的であるため、上マージンに固定値を使用できません。
これをどのように行うことができますか?
これが私のCSSです。
#header-wrap {
position: fixed;
height: auto;
width: 100%;
z-index: 100
}
#container{
/*Need to write css to start this div below the fixed header without mentioning top margin/paading*/
}
...およびHTML:
<div id="header-wrap">
<div id="header">
<div id="menu">
<ul>
<li><a href="#" class="active">test 0</a></li>
<li><a href="#">Give Me <br />test</a></li>
<li><a href="#">My <br />test 2</a></li>
<li><a href="#">test 4</a></li>
</ul>
</div>
<div class="clear">
</div>
</div>
</div><!-- End of header -->
<div id="container">
</div>
まあ!私の質問を見たとき、ヘッダーの動的な高さのために固定マージン値について言及したくないことに気付きました。
このようなシナリオで私が使用しているものは次のとおりです。
JQueryを使用してヘッダーの高さを計算し、上部マージン値として適用します。
var divHeight = $('#header-wrap').height();
$('#container').css('margin-top', divHeight+'px');
デモ (
#containerは#header-wrapの外側にある必要があります。その後、#header-wrapの固定高さを指定してから、#header-wrapの高さに等しい#containerのmargin-topを指定します。このようなもの:
#header-wrap {
position: fixed;
height: 200px;
top: 0;
width: 100%;
z-index: 100;
}
#container{
margin-top: 200px;
}
これがあなたの必要なものであることを願っています: http://jsfiddle.net/KTgrS/
body{
margin:0;
padding:0 0 0 0;
}
div#header{
position:absolute;
top:0;
left:0;
width:100%;
height:25;
}
@media screen{
body>div#header{
position: fixed;
}
}
* html body{
overflow:hidden;
}
* html div#content{
height:100%;
overflow:auto;
}
ユーザーが下にスクロールしてもヘッダーがページの最上部に留まるようにしたいので、ヘッダーは固定されていると思いますが、コンテナーを覆うことは望ましくありません。 position: fixed
を設定すると、ページの線形レイアウトから要素が削除されるため、「次の」要素の上余白をヘッダーの高さと同じに設定する必要があります。そうしたくない理由)、ページフローのスペースを占めるプレースホルダー要素を配置しますが、ヘッダーが表示される場所の下に表示されます。
position :fixed
は他のレイアウトとは異なります。 fixed
のposition
をheader
に設定したら、content
divにmargin-top
を設定する必要があることに注意してください。
#container div topをzeroに設定
#container{
top: 0;
}