で固定し、トップのヘッダーを作成する方法:今
CSS:私はこのクラスを使用して固定されたトップヘッダに続くいる固定幅
.sticky {
position: fixed;
width: 100%;
left: 0;
top: 0;
z-index: 100;
border-top: 0;
}
を、私は固定幅の840px
、100%ではないがしたいとこのJSFiddle exampleのように中央に配置します。
で固定し、トップのヘッダーを作成する方法:今
CSS:私はこのクラスを使用して固定されたトップヘッダに続くいる固定幅
.sticky {
position: fixed;
width: 100%;
left: 0;
top: 0;
z-index: 100;
border-top: 0;
}
を、私は固定幅の840px
、100%ではないがしたいとこのJSFiddle exampleのように中央に配置します。
.sticky {
position: fixed;
width: 840px;
margin-left: -420px
left: 50%;
top: 0;
z-index: 100;
border-top: 0;
}
これが解決策です。
あなたはtransform: translateX(-50%)
を使用して、動的なソリューションを使用することができます - (demo on JSFiddleを):(demo on JSFiddleを)私は、静的な解決策を使用することをお勧めしません
.sticky {
left:50%;
position:fixed;
top:0;
transform:translate(-50%);
width:840px;
z-index:100;
}
が、あなたはあまりにもそれを使用することができます。
.sticky {
left:calc(50% - 420px);
position:fixed;
top:0;
width:840px;
z-index:100;
}
なぜ静的なソリューションを避けるべきですか?
これのような多くの項目を定義してこれらの位置を設定できますが、将来的に幅を変更する場合は、CSS定義の静的部分も変更する必要があります。 CSSで静的な部分を使用することは完全に避けられませんが、最小限に抑えることができます!
あなたはこれを試してみましたか?
HTML:
<div class="sticky-container">
<div class="nav sticky">
Navigation
</div>
</div>
CSS:
.sticky-container {
position: fixed;
width: 840px;
left: 50%;
top: 0;
z-index: 100;
border-top: 0;
}
.sticky {
position:relative;
left:-50%;
top:0;
}
あなたは以下にご.stickyクラスを変更した場合:
.sticky {
margin:auto;
width: 840px;
z-index: 100;
border-top: 0;
}
と体の上にその上の余白を削除します。
をbody {
margin: 0 0 0 0 !important;
padding: 0;
}
これは(マージン:autoを中心にして)ページ内ではなくビューポート内で修正する必要があります – FelipeAls
修正したいものは何ですか?ヘッダーまたはコンテンツ? – Tom
こんにちは...ヘッダー。 – Daniel
固定ピクセルサイズを設定すると、通常、さまざまな画面やデバイスでパフォーマンスが非常に悪くなります。相対的なサイジングははるかに優れています。 –