概要
HTML
では、選択したDOM要素に対し、CSS
で border-radius: XXpx;
とすれば、対象の角を丸めることが可能です。
SVG
でも、rect
要素の rx
、ry
を指定すると css
の定義と同じように角を丸めることができます。
ただ、今後見直されるかもしれませんが、image
要素には rx
、ry
オプションが使用できないようです。
やりたいのは image
要素の角を丸めること。
HTML の場合
HTML
で DOM
要素の角を丸めることは、CSS
で定義可能です。
1 2 |
<img src="imagefile" style="width: 150px; border-radius: 10px;" /> |
SVG の場合
rect を丸める
rect
要素の角を丸める方法は、以下の通り、オプションでサポートされています。
1 2 3 |
<svg width="100" height="100"> <rect width="100" height="100" x="0" y="0" rx="10" fill="black"/> </svg> |
imageを丸める
今の所、一番楽かな?と思うのは clipPath
を使用して、角の丸まった rect
でクリッピングすることですかね。
他にもっといい方法を見つけたらアップデートしたいと思います。
1 2 3 4 5 6 7 8 |
<svg width="150" height="205"> <defs> <clipPath id="clip-path"> <rect width="150" height="205" x="0" y="0" rx="10" /> </clipPath> </defs> <image clip-path="url(#clip-path)" width="150" height="205" x="0" y="0" xlink:href="imagefile" /> </svg> |