2016-04-16 11 views
0

私はこのSVGを持っていて、viewBoxという属性を使って、その中に移動してそのすべての部分を見ることができます。IEのSVG viewBoxの動作

yellow box

あなたは上記の画像に表示されて黄色のボックスには、一定の400x400のSVGあり、それの幅と高さは変更されません。私は垂直方向にスクロールすると

<svg xmlns="http://www.w3.org/2000/svg" viewBox="17900 -4100 1050 1050" preserveAspectRatio="none" width="400" height="400"> 

、Eveythingは、ボックス内を移動するが、インターネットエクスプローラ(11)は、動作が異なります。このよう

yellow box

SVGの身長と体重は400x400のですが、IEは気にしてSVGコンテナの外に移動しませんが! インターネットエクスプローラはSVG要素の外にどのように描画できますか?どうすれば修正できますか?

P.S.どちらの例でも、viewBox属性のみが変更されました。

編集:https://jsfiddle.net/omidh/unjq6h0c/

ChromeとFirefoxはSVG要素内のすべての図形を描くが、Internet Explorerはしません。

+0

viewBoxがどのように変更されますか? –

+0

@RobertLongsonブラウザの要素インスペクタで単純に変更するだけで、jsfiddleを追加しました。IEや他のブラウザで試してみてください。 例えばviewBox = "19250 2100 800 800"をviewBox = "19000 2100 800 800"に変更すると、デフォルトのviewBox属性を変更しなくても、IEは要素外に描画することがあります – omidh

+0

IE要素インスペクタが動作しているのでしょうか?適切に(おそらく主にhtmlで動作するように設計されています)。それを使わずにテストをすると、結果が異なる場合があります。 –

答えて

1

これは必須ではありませんが、overflow: hiddenをSVGに追加することができます。

svg { 
    background-color: khaki; /* rgba(216, 210, 210, 0.06); */ 
    overflow: hidden; 
} 
+0

私はSVG 2がオーバーフローのデフォルトが変更されるべきだと提案しているので、それを外側の ''要素で望むように定義するのが良い方法です。 –

関連する問題