IEを対象外にした場合に使える便利なcss
2022年6月15日にとうとうIE11のサポートが終了し、ようやくIEの後方互換を気にせずサイトが制作できるようになりました。
今回はIEを排除した場合に使用できるcssプロパティのうち便利なものをいくつかを紹介します。これらの機能を活用することで、より洗練されたデザインとインタラクティブなウェブ体験を提供することが可能になります。
画像の表現方法を自在に object-fit
画像をボックスに対してどのように表示させるかを指定するプロパティです。
実際には画像(img)だけでなくvideoやiframe等の置換要素全般に使用できますが、ここでは画像として紹介します。
IEや古いEdgeでは対応外だったので、これを使うにはofi.js等のjavascriptを使う必要がありましたが、今ではEdgeも対応しIEもサポート外という事で心置きなくcssだけで使う事が出来ます。
使い方例
サイズの基準となるボックスはimgタグ自身の事で、div等のimgを囲むタグではありません。
imgタグ自体にサイズを指定します。
個人的によく使うのはcoverとcortainです。
同じサイズの画像を並べたい時に、全体を見せたい場合はcortain、サムネイル等で「一部が切れたとしてもサイズ感優先」の場合はcoverという感じで使い分けてます。
|
1 2 3 4 5 6 7 8 9 10 |
img.cover{ width:200px; height:200px; object-fit:cover; } img.cortain{ width:200px; height:200px; object-fit:cortain; } |

※ボックスの範囲がわかりやすいよう、背景をつけてます。
ブレンドモード実装 mix-blend-mode
名前の通りブレンドモードを実装するcssプロパティです。
画像編集ソフトを使う人にとっては描写モードという表現がお馴染みでしょうか。
乗算とかスクリーンとかのアレです。
昔はwebでは描写モードが使えないのが常識でしたが、それを知らないデザイナーが乗算とか使いまくったイラレデータを送ってきてため息をついたものです。
IE亡き今では使えます。
使い方例
画像編集ソフトを使い慣れていない人は値を見てもよくわからないかもしれません。
そういう人でもmix-blend-mode:multiply;(乗算)を使えると便利です。
色が混ざってちょっと濃くなる、と漠然と考えていただいていいですが、重ね方によっては効果的に見えます。
また、乗算は色を合わせるという意味合い上真っ白を無視するような仕組みなので、背景が真っ白の画像は透過したような使い方が出来ます。

まとめ書きに便利 :where()、:is()
:where()、:is()は疑似クラスのひとつです。
()内にセレクタを複数入れることによりまとめて指定を書くことが出来るので、従来よりも少ない記述で同じ意味のものを書くことが出来ます。
使い方例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/* :where()を使用した記述 */ :where(header,aside,footer) p{ font-size:80%; } /* :is()を使用した記述 */ :is(header,aside,footer) p{ font-size:80%; } /* 従来の記述 */ header p, aside p, footer p{ font-size:80%; } |
上記の記述だけでしたら:where()と:is()の働きに違いは無いですが、効果を後から上書きしたいような場合には:where()が便利です。
cssには詳細度というものがあります。
同じセレクタに対して違う指定が書かれていた場合にどちらを優先するかという目安みたいなもので、詳細度が高い方が優先されます。
基本的には詳しく書かれていた方が詳細度が高く、同じ詳細度なら後に記述している方が優先されます。
ところが、:where()で書かれている指定は詳細度が0になるという仕組みがあり、後から上書きするのに便利です。
|
1 2 3 4 5 6 7 8 9 10 11 12 |
/* :where()を使用した記述 */ :where(header,aside,footer) p{ font-size:80%; } /* :is()を使用した記述 */ :is(header,aside,footer) p{ font-size:80%; } /* :where()の指定は上書きするが、:is()の指定は上書きしない */ p.btn{ font-size:100%; } |
後から低い詳細度の記述で上書きしたいときは:whereを、従来の書き方と同じ挙動にしたい場合は:is()を使いましょう。
尚、scssの場合はちょっと出番はないかもしれません。
関連リンク
digrartのホームページ制作
https://www.digrart.jp/web/web-design/
ホームページ制作に関するお問い合わせ
https://www.digrart.jp/contact/
この記事を書いた人
大阪市中央区にて2009年よりWeb制作・運用支援を行い、1,000件以上の実績を持つWeb制作会社「digrart(ディグラート)」編集部が、本記事を執筆・監修しています。
現場で培った豊富な知見を活かし、Webサイト制作、ECサイト制作、SEO対策、Webコンサルティングの実践的なハウツーをお届けします。
初心者からプロまで、Web戦略の成功をサポートする実務ベースの情報が満載です。
関連記事
-
アニメーションライブラリTweenMaxを使ったWebサイト
遅めのあけましておめでとうございます! 気付けは2018年はあっという間に去り行き、2019年ももう2週間が経過してしまいました。 年々、時間の流れる速度が...
-
utf-8が使えないサーバー?
最近行ったリニューアル案件で、躓いた事例があったのでご紹介します。 phpファイルが文字化けする サイトを一通り構築し自社のテストサーバーでチェック...
-
WordPressの関連記事表示プラグイン Related Posts By Taxonomy
WordPressでウェブサイトを構築する際、ニュースやブログ、製品情報などの詳細ページで関連する記事を表示することがよくあります。 関連記事を表示するプラグ...