Hier ist eine Illustration des Problems (getestet in Firefox und Chrome):
<div style="background-color: red;"><svg height="100px" width="100" style="background-color: blue;"></svg></div>
Beachten Sie den zusätzlichen red
Platz im unteren Bereich div
unter dem Blau svg
.
Bereits versucht zu setzen padding
und margin
von beiden Elementen zu 0
, aber ohne Glück.
Antworten:
Sie brauchen
display: block;
auf Ihremsvg
.<svg style="display: block;"></svg>
Dies liegt daran, dass Inline-Block-Elemente (wie
<svg>
und<img>
) auf der Textgrundlinie sitzen. Der zusätzliche Platz, den Sie sehen, ist der Platz, der übrig bleibt, um Zeichen-Nachkommen aufzunehmen (der Schwanz auf 'y', 'g' usw.).Sie können auch verwenden,
vertical-align:top
wenn Sie es behalten müsseninline
oderinline-block
quelle
inline-block
Elemente (wie<svg>
und<img>
) auf der Textgrundlinie sitzen. Der zusätzliche Platz, den Sie sehen, ist der Platz, der übrig bleibt, um Zeichen-Nachkommen aufzunehmen (der Schwanz auf 'y', 'g' usw.).vertical-align:top
line-height
, aber das Einstellenline-height: 0
des SVG und / oder seines Containers machte keinen Unterschied. Nurdisplay: block
gelöst. Dies ist so ein Problem, wenn Sie zufällig an einer großen SVG arbeiten, weil Sie es nie als Inline betrachten würden. Wenn Sie jedoch ein kleines Symbol haben, ist dies sinnvoll.display: block
nicht für mich arbeiten, abervertical-align
tatsvg
ist eininline
Element.inline
Elemente verlassen Leerraum.Lösung:
In
display:block
zusvg
, oder Make Höhe von Eltern div gleiche wiesvg
.DEMO hier.
quelle
Eine andere Alternative ist hinzufügen
font-size: 0
zusvg parent
.quelle
Ändern Sie die
display
Eigenschaft des SVG inblock
.quelle
Versuchen Sie ,
height:100px
zudiv
und mit einemheight="100%"
aufsvg
:<div style="background-color:red;height:100px"> <svg height="100%" width="100" style="background-color:blue;"></svg> </div>
quelle
svg
im Voraus .Fügen Sie einfach dem Hauptteil div Höhe hinzu
<div style="background-color: red;height:100px"><svg height="100px" width="100" style="background-color: blue;"></svg></div>
quelle
Ändern Sie Ihren Stil in
style = "Hintergrundfarbe: rot; Zeilenhöhe: 0;"
quelle