古いIEで背景サイズを機能させる方法

私たち全員が、サイトの特定の領域に美しい背景画像を作りたい場合があります。

多くの場合、この場合、ブラウザーウィンドウのサイズを変更するときに背景が歪まないようにします。

これは、測定値(幅または高さ)のいずれかがで指定されているimgを使用して実行できる場合もあります(背景が背景であり、コンテンツを特別な手法なしで画像に配置できない場合のみ)。



要素の背景画像を設定するCSS background-imageプロパティを使用することが思い浮かびます。 ただし、追加タグがない場合、画像は左上隅に結び付けられ、要素が画像よりも小さい場合は切り取られ、要素が大きい場合は白い領域が右と下に表示されます。



次に頭に浮かぶのは、背景のカスタマイズに役立つ追加のCSSプロパティの検索です。 それらはbackground-repeatbackground-positionおよびbackground-sizeです。

このプロパティはIE8およびquirksモードの IE9でもサポートされていないため、問題はより正確にbackground-sizeで始まります



この問題には2つの解決策があります。





適切なソリューションを選択した場合、インターネット上の情報は次のとおりです。



1. IE用のネイティブの松葉杖


ユーザーは違いに気付かないので、背景画像を引き伸ばしたり絞ったりすることが許容される場合があります(1ピクセルストリップのグラデーションはページの幅全体に広がり、見栄えがよくなります)

これを行うには、CSSプロパティとして次を追加します。

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/logo.gif', sizingMethod='scale'); -ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/logo.gif', sizingMethod='scale')";
      
      





images / logo.gifは背景画像へのパスです。

これらのプロパティはIEのみが理解し、通常のブラウザに害を与えることはありません。



2. jquery.backgroundSize.js


このプラグインは作成者によって非推奨としてマークされていますが、機能します。

利点:



短所:





このソリューションを使用するには、次のようにページに接続する必要があります。

 <!-- The flag should be inserted before loading the script --> <script>$.debugBGS = true;</script> <!--[if lt IE 9]> <script src="/path/to/jquery.backgroundSize.min.js"></script> <![endif]-->
      
      





そして、次のような要素のbackground-sizeプロパティを設定します

 $(elem).css( "background-size", "cover" );
      
      







3. background-size-polyfill


ソリューションNo. 2の開発です。

利点:



短所:





このソリューションを使用するには、このソリューションのサイトから取得した.htaccessファイルを、サイトのルート、およびbackgroundsize.min.htcが必要な場所に配置する必要があります

要素のCSSプロパティをbackground-sizeとともに設定する場合、 -ms-behaviorプロパティを設定する必要があります。url(path_to_your_where_will_cause / backgroundsize.min.htc);



4. background-size-emu


ソリューションは、ソリューションNo. 3のアイデアに基づいています。

利点:



短所:





このソリューションを使用するには、スクリプトをページに接続するだけです。





一般的な問題


決定No. 2、No。3、およびNo. 4はbackground-sizeが設定されている要素に挿入されます。内部にimgを持つ絶対位置のdivで、要素のサイズに応じて画像のサイズを変更します。



これはまだ松葉杖であるため、すべてのソリューションでサポートされているわけではありません。





最後に


上記のライブラリはすべてGitHubで入手できます。



All Articles