これが問題の実例です(FirefoxとChromeでテスト済み):
<div style="background-color: red;"><svg height="100px" width="100" style="background-color: blue;"></svg></div>
青red
のdiv
下の内側の余分なスペースに注意してくださいsvg
。
padding
とmargin
両方の要素をに設定しようとしまし0
たが、運がありませんでした。
これが問題の実例です(FirefoxとChromeでテスト済み):
<div style="background-color: red;"><svg height="100px" width="100" style="background-color: blue;"></svg></div>
青red
のdiv
下の内側の余分なスペースに注意してくださいsvg
。
padding
とmargin
両方の要素をに設定しようとしまし0
たが、運がありませんでした。
回答:
あなたは必要とするdisplay: block;
あなたにsvg
。
<svg style="display: block;"></svg>
これは、インラインブロック要素(<svg>
およびなど<img>
)がテキストベースライン上にあるためです。表示されている余分なスペースは、文字の子孫( 'y'、 'g'などのテール)を収容するために残されたスペースです。
あなたがvertical-align:top
それを保持する必要がある場合にも使用できますinline
またはinline-block
inline-block
要素(<svg>
およびなど<img>
)がテキストベースライン上にあるということです。表示されている余分なスペースは、文字の子孫( 'y'、 'g'などのテール)を収容するために残されたスペースです。
vertical-align:top
line-height
がline-height: 0
、svgやそのコンテナーを設定しても違いはありませんでした。display: block
それを解決しただけです。これは、大きなSVGで作業している場合、インラインとは考えられないため、このような落とし穴です。ただし、小さなアイコンがある場合は、それは理にかなっています。
display: block
私にvertical-align
はうまく