css Variable

Bennyaa

Lieutenant
Registriert
März 2007
Beiträge
828
Hallo, habe ich in css eine möglichkeit eine Variable mit zu nutzen?

Bspw. wenn ich ein objekt um x em verschieben möchte, dann will ich, dass sich ein anderes genauso verschiebet.

dachte da an sowas wie:

Code:
#Object1
{
    position: absolute;
    top: Var1 + em5;
}

#Object2
{
    position: absolute;
    top: Var1;
}
 
  • Gefällt mir
Reaktionen: abcddcba, N00bn00b und tollertyp
Oder halt auf Dinge wie SASS, LESS oder wie sie alle heißen, setzen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: abcddcba
Nein, in einer CSS Variable steht einfach ein beliebiger Wert drin, durch das var() ersetzt wird. Damit kannst du nun fast alles machen, was du in CSS auch mit Literalen machen kannst. Zum Beispiel in calc() nutzen.

CSS:
:root {
    --my-padding: 50px;
}

my-element {
    top: calc(var(--my-padding) + 2em);
}
 
Was ich mich gerade frage ist, ob der TE dann diese Variable via JS ändern können möchte. Aber ich denke nicht :-)
Sonst wäre ja die Rechnung jetzt schon im JS.
 
tollertyp schrieb:
Was ich mich gerade frage ist, ob der TE dann diese Variable via JS ändern können möchte. Aber ich denke nicht :-)
Sonst wäre ja die Rechnung jetzt schon im JS.
Wäre auch nicht schlecht.
Nehme mal an, das dann wohl geht?
Wollte gerade nur auf die Schnelle jeden Objekt einer Gruppe einen Grundoffset verpassen und somit generell alles verschieben.
Oder sollte man sowas mit divs zusammenfassen?
 
Wenn du mehrere Elemente die zusammengehören verschieben willst, dann macht man das i.d.R. über einen Container, ja. Ansonsten was @floq0r sagt.
 
  • Gefällt mir
Reaktionen: netzgestaltung
Und wie funktioniert das mit einer CSS-Klasse und dem Verschieben ("Grundoffset")? Also das heißt, alle Elemente selbst haben unterschiedliche Positionen, und man möchte sie nun über eine CSS-Klasse z.B. um 20 Pixel nach unten verschieben?

Siehe dazu den Beispiel-CSS-Code oben.

Insofern: Idealerweise alles zusammenfassen, was auch zusammengehört.
 
floq0r schrieb:
Oder einfach mit einer CSS Klasse ;)
Ah OK, ja auch cool. Gefällt mir :).
Allerdings wenn ich eine Klasse verschiebe und keinen container habe, dann beziehe ich mich ja bei den einzelnen Objekten immer auf das übergeordnerte objekt, oder? Oder bezieht sich ein objekt dann auf die klasse?
So wie bei einem container?
Wenn nicht, könnte das ja zu problemen beim verkleinern der seite führen, oder?

Was ist denn nun Besser? Verschiebungen mit "em", oder mit "%"?
 
Es kommt auf die Art der Positionierung an, auf was du dich beziehst.

Und ob das Verschieben mit der Klasse wie gewünscht funktioniert, wenn diese unterschiedliche Werte haben sollen für z.B. topp, das muss mir erst noch jemand beweisen.
 
Zurück
Oben