前提・実現したいこと
position:stickyを使ってグローバルメニューをページの左側にフロート状態で固定したいと思っています。
ただし、フッター部分にはメニューを重ねたくないため、ページトップからフッターの手前までをsticky containerとして設定すれば実現できるかと考えています。
また、position:stickyを指定したメニューは常に画面の手前に表示された状態にしたいと思っています。
発生している問題・エラーメッセージ
position:stickyを指定しているheader部分を常に手前にフロートするためにz-indexを指定しているのですが、要素の重なりが反映されずにheaderとそれ以降のコンテンツが上下に並んで表示されてしまいます。
headerをコンテンツの手前に重ねるにはどうしたら良いでしょうか。
【実現したいデザイン】(position:fixedで再現しています)
該当のソースコード
html
1<!DOCTYPE html> 2<html lang="ja"> 3<body> 4 <header> 5 <nav> 6 <ul> 7 <li>HOME</li> 8 <li>ABOUT</li> 9 <li>PRODUCTS</li> 10 </ul> 11 </nav> 12 </header> 13/* 以下、コンテンツ省略 */ 14</body> 15</html>
css
1header{ 2 position: sticky; 3 position: -webkit-sticky; 4 top: 0; 5 z-index: 999; 6}
こちらでやってみた感じ効いてますけどどっかで上書きしてるとかじゃないですかね
position: sticky;
position: -webkit-sticky;
↑この順番が気になります。
質問の編集を拝読。
もしかして、スクロールさせる前から重ねたい、ということですか?
該当部分のみのhtmlおよびcssのソースコードを作成してみましたが、同じ状態になっていました。
また、
position: sticky;
position: -webkit-sticky;
の順番も変えてみましたが変わりませんでした。
参考までに質問内容に実現したい状態と現在の状態のgif画像を追加しています。
よろしくお願いいたします。
>もしかして、スクロールさせる前から重ねたい、ということですか?
はい、その通りです。

回答2件
あなたの回答
tips
プレビュー