繁忙期につき、ご無沙汰しておりましたが、またブログを更新していきたいと思います!m(_ _)m
そんな繁忙期中に、サイドナビをFIXさせたい要望がありました…が、フッターの領域にはFIXナビを被らせたくない。
↓こんなイメージ(Sideの領域内のみ、画面FIXさせたい)
JavaScriptを使えば、まあ出来る事ではあるのですが、どうせならCSSだけでお手軽に出来ないかと調べてみました。
結構簡単に実装出来ちゃいますので、なかなかおススメですよ!
今回使用するのはposition: sticky;です。
…これだけです。
これだけで、JavaScriptを使用して実装していた動きが簡単にできちゃいます。
【サンプル】
Header
この要素がFIXします
Contents
Footer
【HTML】
<div class="sampleBox">Header</div> <div class="sampleWrap"> <div class="sampleLeft"><p>この要素がFIXします</p></div> <div class="sampleRight">Contents</div> </div> <div class="sampleBox">Footer</div>
【CSS】
div.sampleLeft{ position: relative; /* ←必要なもの */ } div.sampleLeft p{ position: -webkit-sticky; /* ←必要なもの */ position: sticky; /* ←必要なもの */ top: 0; right: 0; }
※サンプルCSSはレイアウトのためのものは省いて、sticky関係(と親要素のposition指定)だけ入れています。
古いブラウザになるとサポートされていないので、ちょっと注意は必要ですが(IEには効いてくれません…)これから便利なCSSだと思います!
このstickyには、他にも色々使い道がありそうなので、またの機会にご紹介出来ればと思います。