最新の更新:
SVGを使用する場合に最も重要なのは、仕様に精通するか、J。Eisenbergによる「SVGEssentials」のような明確なガイドを読むことです。これは、最初はそれほど些細なことではないからです。
それから私があなたを正しく理解したなら、別のアプローチjsFiddleがあります。
まず、viewBox
属性の値を正しく設定します。現在の例では、すべてのコンテンツが表示されるようにする必要があります(最後のグループが変換さviewBox="0 0 130 220"
れる原因として、最後の数値として少なくとも220を指定する必要があります。つまり、座標系が200単位に移動します。そうしないと、コンテンツは表示されません。これは、ビューボックスの最も外側のyポイント(jsfiddleでは70に設定されている)をはるかに超えているためです。<g>
次に、正しい値を指定します。preserveAspectRatio
これpreserveAspectRatio="xMinYMax meet"
は、(J。Eisenbergによる「SVGEssentials」の提供)を意味します。
ビューボックスの最小xをビューポートの左隅に揃えます。
viewBoxの最大y値をビューポートの下端に揃えます。
meet
コンテンツが収まらない場合は、スライスするのではなく、コンテンツを満たすことを意味します。
第三に、svgの下部に要素を追加する場合は、viewBox
それに応じて値を変更する必要があります。それに、次のように挿入する場合に発生します。
<g transform="translate(0, 300)">
<text>text 55 </text>
</g>
これは、最大yポイントが220であるviewBoxの周囲で発生します(前に述べたように設定する場合)
今のところそれが役立つことを願って、私に知らせてください。
古いもの
style="height:200px"
あなたのsvgから削除します
次に、高さが必要な場合は、高さを動的に変更できますsvg
var $wrapper = $('#resize'),
$svg = $('#svg2');
$wrapper.resizable({
handles: 'se',
aspectRatio: 400/200,
resize: function(ev, ui) {
$svg.css('height', ui.size.height);
}
});
'#resize'
-id
のラッパーのsvg
私は今あなたが欲しいものについて非常に混乱しています。viewbox
でattrを指定しましたsvg
。つまり、あなたの一部だけsvg
が表示されます。削除viewbox
して、結果が満足のいくものに見えるかどうかを確認してください。
その後、すべて表示され、通常は親divに調整されます