Das ist ein Unterschied, den man kennen sollte. Sie sehen ziemlich ähnlich aus. Sie können einige der gleichen Dinge tun. Aber das eine ist sehr einfach zu überschreiben und das andere nicht.
Inline-Stile sind wahrscheinlich etwas vertrauter
<div style="width: 300px; height: 300px;">
Inline styles on an HTML element.
</div>
SVG kann das auch
<svg style="width: 300px;">
Inline styles on an SVG element.
</svg>
Aber SVG hat auch dieses Konzept von Präsentationsattributen, was bedeutet, dass wir das tun könnten
<svg width="300px" height="300px">
Presentational attributes on an SVG element.
</svg>
Der Unterschied?
Präsentationsattribute sind in CSS sehr einfach zu überschreiben
Jedes CSS reicht aus.
/* These styles will override the presentational attributes */
svg {
width: 250px;
height: 250px;
}
Inline-Stile können nur durch !important-Regeln in CSS überschrieben werden
Der einzige Weg, einen Inline-Stil zu überschreiben, ist die Verwendung von !important-Regeln
svg {
width: 250px !important;
height: 250px !important;
}
Eine grobe Skizze, um den Punkt zu verdeutlichen

Das kommt tatsächlich vor, wie ich finde, in der täglichen Entwicklung. Zum Beispiel fragt Illustrator, wie Sie exportierte SVG-Dateien gestalten möchten

Es ist auch sinnvoll, Präsentationsattribute hinzuzufügen, insbesondere Größenattribute, zu SVG, um FOUSVG zu vermeiden.
Ich glaube, der Wert der Attribute
widthundheightsollte einheitenlos sein.Zum Beispiel
<svg width="300" height="300">anstelle von<svg width="300px" height="300px">Hallo Thierry,
Für SVG-Breiten-/Höhen-Präsentationsattribute können Sie entweder einheitenlose Zahlen (als px behandelt) oder jede gültige CSS-Einheit oder Prozentangaben verwenden. Dies entspricht der Tatsache, dass Präsentationsattribute in SVG nur eine weitere Möglichkeit sind, die style-Eigenschaft zu setzen.
Für HTML-Breiten-/Höhen-Präsentationsattribute bei
<img>,<object>usw. können Sie nur einheitenlose Zahlen verwenden.Der Wert der Attribute
widthundheightmit oder ohne Einheiten (px) funktioniert beides... wie–<svg width="300" height="300">und<svg width="300px" height="300px">ergeben das gleiche Ergebnis.Danke AmeliaBR!
Es ist beides gültig. Ohne Einheiten sind es nur statische Werte, aber mit Einheiten können Sie auch prozentuale Breiten verwenden.
Hallo AmeliaBR,
im
<img>-Tag funktionieren sowohl Einheiten als auch einheitenlose Zahlen fürwidthundheightbeide gut..Hallo Pranab,
Es "funktioniert", weil Browser wissen, wie sie sich von dieser Art von Fehler "erholen" können.
<image>funktioniert auch, aber das bedeutet nicht, dass wir es verwenden sollten. Tatsächlich ist es **weil** Autoren solche Fehler machen, dass Browser solche Markups unterstützen müssen.