CSS-Padding-Eigenschaft für SVG-Elemente

7

Ich kann nicht herausfinden, wie die CSS padding -Eigenschaft für svg -Elemente interpretiert wird. Das folgende Snippet ( jsFiddle ):

%Vor%

... wird in Firefox und Chrome deutlich anders dargestellt. Was noch schlimmer ist, macht für mich kein Display wirklich Sinn: Die Größe des angezeigten Elements svg (das "beige" Rechteck) scheint wesentlich größer zu sein als ich erwartet habe.

Also meine Frage ist zweifach: 1) Wie wirkt sich die padding Eigenschaft eines svg Elements auf aus, um zu beeinflussen, wo die Dinge darin gezeichnet werden? 2) Gibt es einen Polyfill, der sicherstellt, dass sowohl Chrome als auch Firefox beide Padding auf die gleiche Weise behandeln?

    
kjo 30.10.2013, 22:37
quelle

3 Antworten

17

AFAIK, der SVG-Standard spezifiziert nichts wie Padding, weshalb es inkonsistent gehandhabt wird. Setzen Sie einfach das SVG auf die gewünschte Größe (mit Padding) und fügen Sie eventuell rect hinzu, damit es so aussieht, als ob es angezeigt werden soll.

    
Lars Kotthoff 31.10.2013, 13:08
quelle
3

Aus meiner Erfahrung (gewährt, immer noch sehr wenig, da ich immer noch SVG lerne), habe ich mich davon entfernt, Padding zu benutzen, wo immer ich das tun könnte. Es wurde mir vorgeschlagen, wenn ich SVG zum ersten Mal lernte, dass ich Rand anstelle von Padding verwende, wenn möglich.

Dies liegt auch daran, dass Sie display: block; und margin: 0 auto; verwenden können, um die linke und rechte Seite eines SVG so zu gestalten, dass sie direkt in die Mitte des Bildschirms passen.

    
th3n3wguy 30.10.2013 22:49
quelle
0

Es gibt kein Padding oder einen Rand, aber Sie können x- und y-Attribute so setzen, dass die Elemente innen oder außen eine Auffüllung und einen Rand erhalten. Beispiel: Wenn ein Element bei (0,0) beginnt, wird bei (10, 10) automatisch ein Abstand von 10 festgelegt.

    
newbie 10.10.2017 15:01
quelle

Tags und Links