背景画像が設定されたdivがあります:
<div>Play Video</div>
次のCSSを使用します。
div {
background-image: url('icon.png');
background-image: url('icon.svg'), none;
background-size: 40px 40px;
background-repeat: no-repeat;
background-position: 90% 50%;
padding: 20px;
width: 150px;
}
背景サイズは、Firefox、Safari、およびChromeで尊重されます。 IE8では、SVGはPNGファイルに置き換えられます。ただし、IE9およびIE10では、SVGファイルのサイズが大幅に縮小されます。問題は、divの幅と高さに関係しているようです。 150pxの高さを追加すると、SVGは適切にレンダリングされます。小さく(つまり、100ピクセル)すると、グラフィックが縮小し始めます。
エクスプローラでこの問題を解決する方法を見つけた人はいますか? divの幅と高さに関係なくbackground-size値を使用するようにIEに指示する方法はありますか?
SVGにwidth
とheight
が指定されていることを確認してください。 Illustratorから生成する場合は、このオプションで幅と高さが削除されるため、[応答]ボックスがオフになっていることを確認してください。
SVGに幅と高さを追加すると、mbxtrは私にとってはほとんど機能すると言いました。 IEで応答するようにするには、preserveAspectRatio="none slice"
も追加する必要がありました。
私にとって、これらの3つの修正が役立ちました:
まあ、それは解決策があるようには見えません。サプライズサプライズ。結局IEです。私は次のコードを使用することになりました:
div {
padding: 20px;
width: 150px;
position: relative;
}
div:after {
position: absolute;
content: "";
width: 40px;
height: 40px;
top: 50%;
right: 30px;
margin-top: -20px;
background-image: url('icon.png');
background-image: url('icon.svg'), none;
}
クリーナーバージョンの方が好きでしたが、このハックはIE8、9、10(おそらく11ですが、テストしませんでした)を含むすべての最新ブラウザーで動作します。
この問題があり、heightとwidthのいずれかを削除することがわかりましたviewBoxを保持するsvg BUTのコード内で問題を解決できます。
https://jakearchibald.github.io/svgomg/ のようなコンパイラサイトを使用し、オプションを"高さと幅よりもviewBoxを優先する"
またが機能しない場合、Illustratorでsvg画像の周囲に正方形の背景を適用しますが、エッジの周囲に十分な余白を残します。
-> data uri:...を使用して、スタイルシートにsvgをインポートします。例:
background-image:data-uri( 'image/svg + xml; charset = UTF-8'、 'where/your/svg/is/located');
drips.style.top = -dripsTop + "px";
var browser = window.navigator.userAgent;
if (browser.indexOf("Trident") > 0) {
$(".flow_space").css({"background":"url(../img/space2-ie.svg) no-repeat", "background-size":"100%"});
}
含まれている要素(検索入力の左側の虫眼鏡など)の完全なサイトではないSVG背景画像でも同様の問題がありました。
Illustrator CCでSVGを作成しましたが、Peter CollingridgeのSVGオプティマイザーを介してSVGを実行し、不要な不要なデータをすべて取り除きました。 http://petercollingridge.appspot.com/svg-optimiser
Svg背景画像サイズは、これらのプロパティを使用してIEとChromeで同じようにレンダリングされます
background: #ffffff url("images/calendar.svg") no-repeat;
border: 1px solid #dddddd;
float: left;
margin: 0;
overflow: hidden;
background-size:15px 15px;
@mbxtrのソリューションを試しました
SVGに幅と高さが指定されていることを確認してください。 Illustratorから生成する場合は、このオプションで幅と高さが削除されるため、[応答]ボックスがオフになっていることを確認してください。
Windows ChromeおよびIEでは、まだうまくいきませんでした。フォントアイコンをエクスポートしていたので、フォントがある場合は、次のようにエクスポートしてください。
また、念のため「縮小」のチェックを外しました...