後輩ちゃん
先輩!今日は何を教えてくれるんですか?
今日は、CSSのposition:stickyをIE(Internet Explorer)でも使えるようにする方法を教えるよ!
よろしくお願いします!
HTML/CSSの学習におすすめ書籍
1冊ですべて身につくHTML&CSSとWebデザイン入門講座
メリット
- HTMLとCSSの基本が体系的に学べる
- Webデザインの基本が学べる
- 1つのWebサイトを作りながら学べる
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード
メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次
position:stickyはIEに非対応
下記のテーブル表にposition:stickyの互換性についてブラウザ別にまとめたのでご覧ください
ブラウザ | サポート |
---|---|
Chrome | 56 |
Edge | 16 |
FireFox | 32 |
Internet Explorer | 非対応 |
Opera | 43 |
Safari | 13 |
WebView Android | 56 |
Chrome Android | 56 |
FireFox for Android | 32 |
Opera Android | 43 |
Safari on iOS | 13 |
Samsung Internet | 6.0 |
position:stickyはIEに非対応だから、表示がされないんですね!
その通り!でもIEが非対応だから絶対に使えないわけではなくて、IEでposition:stickyを使えるようにする方法はあるから、その方法について解説するね
stickyfill.min.jsを読み込ませよう
stickyfill.min.jsは、position:stickyが対応していないブラウザでも要素間でのスクロール追従ができるようになるポリフィルです。
ポリフィルとは
ポリフィルとは、最近の機能をサポートしていない古いブラウザーでも、その機能を使えるようにすることができるスクリプトです。
stickyfill.min.jsの使い方
まず初めに、CDNで提供されているstickyfill.min.jsを</body>の直前に追加します。
<script src="https://cdnjs.cloudflare.com/ajax/libs/stickyfill/2.1.0/stickyfill.min.js"></script>
続いて、以下のスクリプトを記述します。
document.querySelectorAllで取得しているクラス名はposition:stickyを使用しているクラスに変更してください。
// JavaScript
<script>
var elem = document.querySelectorAll(".使用しているクラス名");
Stickyfill.add(elem);
</script>
// jQuery
<script>
var elem = $('.使用しているクラス名');
Stickyfill.add(elem);
</script>
まとめ
今回の記事では、position:stickyをIEでも使えるようにする方法について解説しました。最後にポイントを軽くおさらいしましょう。
ポイント
- IEで正常に動作しない原因は、position:stickyがIEに対応していないため
- IEに対応させるためには、stickyfill.min.jsを読み込ませる必要がある