CSS2JS

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Um Inline-Stile auf einem Element in JSX hinzuzufügen, müssen Sie dies in dieser Objekt-Syntax tun, so wie

<div style={{
  fontSize: 16,
  marginBottom: "1rem"
}}>
  Content
</div>

Das mag uns, die wir an die CSS-Syntax gewöhnt sind, ein wenig komisch vorkommen, wo es font-size (nicht fontSize), margin-bottom (nicht marginBottom) und Semikolons (nicht Kommas) gibt.

Das ist nicht JSX (oder React oder was auch immer), das seltsam ist – das ist einfach, wie Styles in JavaScript sind. Wenn Sie font-size aus irgendeinem anderen JavaScript setzen wollten, müssten Sie

div.style.fontSize = "16px";

Das sage ich, aber andere APIs wollen, dass Sie die CSS-Syntax verwenden, wie zum Beispiel

window.getComputedStyle(document.body)
  .getPropertyValue("font-size");

Es gibt auch viele CSS-in-JS-Bibliotheken, die entweder das Setzen von Styles in diesem Objektformat erfordern oder optional unterstützen. Ich habe sogar gehört, dass bei Bibliotheken, die sowohl das CSS-Format (über Template-Literale) als auch das Objektformat (z.B. Emotion) unterstützen, manche Leute die Objekt-Syntax gegenüber der CSS-Syntax bevorzugen, weil sie sich in dem umgebenden JavaScript besser zu Hause fühlt und etwas weniger umständlich ist, wenn man Dinge wie Logik oder das Einfügen von Variablen macht.

Wie auch immer, der eigentliche Grund für den Beitrag ist diese kleine Website, die ich entdeckt habe, die das CSS-Format in das Objektformat umwandelt. CSS2JS

Definitiv praktisch, wenn Sie einen großen Block von Styles umwandeln mussten.

Direkter Link →