[jQuery]IE7、8でもbackground-size:containが利用できるプラグインjquery.backgroundSize

CSSプロパティ
スポンサーリンク

IE7、IE8のブラウザでもCSS3のbackground-size:containbackground-size:coverを使用するためのjQuery プラグインがjquery.backgroundSizeです。

そこまでしてIE対応が必要か…の話は置いておいて、今回はjquery.backgroundSizeの基本的な使い方をサンプルに加えて、プラグイン使用に関する注意点も合わせてご紹介します。

jquery.backgroundSizeファイルのダウンロード

IE7、8でも background-size:contain が利用できるjQueryプラグイン「jquery.backgroundSize」
以下のサイトよりjquery.backgroundSizeのファイルをダウンロードします。
jquery.backgroundSize.js<

プラグイン提供先のサイトがjquery.backgroundSize を利用したデモページになっていますので、イメージを掴みやすいと思います。


background-size プロパティについて

CSS3のbackground-sizeについては背景画像のサイズを変更できるプロパティ「background-size」の記事でも紹介していますので、合わせて参考にしてみてください。

ちなみに background-sizeの値は以下のようになっています。
auto自動算出(初期値)
contain縦横比は保持。背景領域に収まる最大サイズに拡大縮小
cover縦横比は保持。背景領域を完全に覆う最小サイズに拡大縮小
pxpxで直接数値を指定
%%で直接数値を指定


background-size:contain

<head>内にjqueryファイルと一緒にjquery.backgroundSize.jsファイルを設置しますが、IE8以下に対応させるので<!–[if lte IE 8]>で括るようにします。


.contentsの要素に対してCSS3のbackground-size:containを適用させる例です。


CSSの記述ですが、背景の画像を指定した上でモダンブラウザ用にbackground-size:containを適用させます。

background-size:containのデモ


background-size:cover

続いて .contentsの要素に対してCSS3のbackground-size:coverを適用させる例です。


先の例と同様に、モダンブラウザ用にbackground-size:coverを指定します。


background-size:coverのデモ


jquery.backgroundSizeの注意点

jquery.backgroundSize を使う上でちょっとした注意点がありますので、過去に経験した事例も交えてまとめました。

background-size: で % 指定すると動かない模様

contain、coverはIE7、8でも効いてくれますが、% 指定だと動かないようです。

background-size:50%のような使い方をするサイトの場合は、IE7、8対応は厳しいかな…と思います。


background プロパティの取り扱いに注意

プラグインファイル内にも以下の通り記載されていますが、

doesn’t work with multiple backgrounds (use the :after trick)
doesn’t work with the “4 values syntax” of background-position
doesn’t work with lengths in background-position (only percentages and keywords)
doesn’t work with “background-repeat: repeat;”
doesn’t work with non-default values of background-clip/origin/attachment/scroll


例えばbackground-position:50% 50%のように background-position に数値を指定すると動いてくれません。

background-position:top centerのように指定すれば動いてはくれますが、IE7、8用にレイアウトを別途補正しないといけない場合があります。

コメント

タイトルとURLをコピーしました