43

私はSVGチュートリアルで遊んでいて、次のような画像をロードしただけです。

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg style="stroke-linejoin:round; stroke:black; stroke-width:0.5pt; text-anchor:middle; fill:none" xmlns="http://www.w3.org/2000/svg" font-family="Helvetica, Arial, FreeSans, Sans, sans, sans-serif" height="400px" width="400px" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 250 250">
    <rect y="0" x="0" height="250" width="250" stroke="black"  stroke-width="1" fill="blue" />
    <image y="0" x="0" height="250" width="250" xlink:href="http://www.blueprintmodel.co.uk/images/DSCF1438.jpg" />
</svg>

高さと幅が同じでも、viewBoxの中央の「rect」の上に画像が表示されます。私の質問は次のとおりです。

  • 画像をrectのサイズに拡大するにはどうすればよいですか?
  • 「image」タグの「height」が機能しないのはなぜですか?
  • 使用できる「ストレッチ」や「サイズ変更」のような変換はありますか?(見つかりませんでした)
4

3 に答える 3

93

preserveAspectRatio="none"SVG要素に設定:

<svg viewBox="0 0 500 500" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg" >
于 2012-09-17T17:18:39.510 に答える
5

純粋なCSSを使用して、SVGのアスペクト比をスケーリングおよび変更することもできます。

transform: scale(x, y);

于 2018-08-06T23:58:45.373 に答える
2
于 2021-10-05T11:41:05.220 に答える