【CSS】position: stickyを使ってボタンをfooterと被らずにスマホ下部に固定する方法

CSS

今回は、「position: stickyを使ってボタンをfooterと被らずにスマホ下部に固定する方法」について紹介します。

スマホの時にボタンを下部に固定してfooterと被らないようにする実装はよく出てくるので、是非理解しておきたいところですね。

【CSS】position: stickyを使ってボタンをfooterと被らずにスマホ下部に固定する方法

デモサイトはこちら。

デモサイトを下までスクロールしてみてください。

ボタンが固定され、footerのところまで来たら被らないようになっています。

HTML

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<div class="wrapper">
<header class="header">
headerエリア
</header>
<div class="content">
<p>コンテンツエリア</p>
<p>コンテンツエリア</p>
<p>コンテンツエリア</p>
</div>
<div class="sp-fixed">
<div class="btn">
<a href="">固定ボタン</a>
</div>
<div class="btn">
<a href="">固定ボタン</a>
</div>
</div>
<footer class="footer">
footerエリア
</footer>
</div>
<div class="wrapper"> <header class="header"> headerエリア </header> <div class="content"> <p>コンテンツエリア</p> <p>コンテンツエリア</p> <p>コンテンツエリア</p> </div> <div class="sp-fixed"> <div class="btn"> <a href="">固定ボタン</a> </div> <div class="btn"> <a href="">固定ボタン</a> </div> </div> <footer class="footer"> footerエリア </footer> </div>
<div class="wrapper">

    <header class="header">
        headerエリア
    </header>

    <div class="content">
        <p>コンテンツエリア</p>
        <p>コンテンツエリア</p>
        <p>コンテンツエリア</p>
    </div>

    <div class="sp-fixed">
        <div class="btn">
            <a href="">固定ボタン</a>
        </div>
        <div class="btn">
            <a href="">固定ボタン</a>
        </div>
    </div>

    <footer class="footer">
        footerエリア
    </footer>

</div>

ポイントは、固定したボタンパーツsp-fixedのコードをfooterの上に配置することです。

CSS

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
.sp-fixed {
position: sticky;
bottom: 0;
left: 0;
}
.sp-fixed { position: sticky; bottom: 0; left: 0; }
.sp-fixed {
  position: sticky;
  bottom: 0;
  left: 0;
}

固定したい要素に対して「potion: sticky;」を指定し、bottomとleftを0にすることで画面下部に固定されるようになります。

これでfooterの要素まで固定され、footerが表示されると固定されなくなります。

「potion: sticky;」は、overflowのhiddenやscroll、autoを直近の親要素に指定しているとスタイルが効かなくなるので注意してください。

まとめ

以上が、「position: stickyを使ってボタンをfooterと被らずにスマホ下部に固定する方法」でした。