2013-06-13 5 views
23

私は<g>(グループ)内にあるSVG <rect>を持っています。私はそれをスケールし、ビューポートのパーセンテージで変換したいと思います。 svgのほとんどすべては、ばかげた数のオプションを通してユニットの指定を可能にします。例えばpx、em、%、ex、pt、pc、...しかし、翻訳で指定された数値はピクセルだけであるようです。SVGグループをビューポートのパーセンテージで翻訳する方法

私が戻って翻訳のピクセル値を再計算する必要がある場合、私のsvgは解像度に依存するということです。それから私、あなたと誰もがパラドックスに吸い込まれるでしょう。なぜ私は少し心配しているのか分かります。

<svg> 
    <g transform="scale(1, 1) translate(0, 0)"> 
    <rect x="45%" y="25%" height="50%" width="10%"/> 
    </g> 
</svg> 

http://jsbin.com/ubeqot/1/edit

+8

状況の重力を明確に表現しています。 – Seth

答えて

22

スティック内<svg>要素で<g>素子及びそれを翻訳するために、内側<svg>要素にパーセント値とxとy属性を追加します。

<svg> 
    <svg x="10%" y="20%"> 
    <g transform="scale(1, 1)"> 
     <rect x="45%" y="25%" height="50%" width="10%"/> 
    </g> 
    </svg> 
</svg> 

あなたはスケールが最初に適用したい場合は、代わりに<g><svg>要素を入れてしまうでしょう。

+0

私は 'g'要素の中に' circle'を持っています。そして、その円はセンタリングされません。なぜなのかご存知ですか?それはちょうど左上隅に "カット"を表示します。 [テストページ](http://jsbin.com/lurepim/edit?html,css,output) – vsync

+0

完全なマークアップで新しい質問をしてください。 –

+0

ここで上司に行く - http://stackoverflow.com/q/33135429/104380 – vsync

関連する問題