Wie bekomme ich den Wert einer CSS-Eigenschaft in SASS?

8

Ich möchte den aktuellen Wert einer Eigenschaft zur späteren Verwendung speichern. Es wurde bereits für jQuery gelöst.

Das Problem ist, dass ich eine @mixin verwende, um einen CSS-Hack an mehreren Stellen anzuwenden ( Berechtigte Sperrliste ) und ich möchte die font-size -Eigenschaft in .block-list * (derzeit all Text in Unterelementen) wiederherstellen eingestürzt).

Nicht zufriedenstellende Problemumgehungen:

  • Speichern Sie die globale Standardschriftgröße in einer separaten Datei und übergeben Sie sie an @mixin on @import . Dies ist natürlich im Allgemeinen nicht die gleiche Schriftgröße wie die Objekte, auf die das Mixin angewendet wird.
  • Speichern Sie die Schriftgröße, wenn Sie sie ändern, und übergeben Sie sie. Dies verwickelt die beteiligten Dateien, da es nicht sehr elegant ist, das Typografie-Stylesheet in mehreren anderen Dateien zu verwenden.
  • Verwenden Sie mehr jQuery.

Möglicherweise zufriedenstellende Problemumgehungen:

  • Überschreiben Sie die Schriftgröße mit einer stärkeren Regel für den ersten Vorgänger, der sie ändert. Dies könnte schwierig zu bestimmen sein.
l0b0 22.02.2012, 12:14
quelle

2 Antworten

3

Es gibt keine Möglichkeit, den berechneten Wert einer Eigenschaft zu ermitteln, bis die Stile tatsächlich auf ein Dokument angewendet werden (das untersucht jQuery). In den Stylesheet-Sprachen gibt es keinen "aktuellen" Wert außer dem Anfangswert oder dem von Ihnen angegebenen Wert.

Speichern Sie die Schriftgröße, wenn Sie sie ändern, und übergeben Sie diese am besten, und @BeauSmith hat angegeben Ein gutes Beispiel . Mit dieser Variante können Sie eine Größe oder einen Fallback an ein definiertes globales Element übergeben:

%Vor%     
sam 02.01.2014, 20:23
quelle
3

Wenn Sie eine Mischung haben, die etwas "hacky" mit der Schriftgröße macht, dann müssen Sie wahrscheinlich die Schriftgröße zurücksetzen, wie Sie bemerkt haben. Ich schlage folgendes vor:

  1. Erstellen Sie eine teilweise Sass, um Ihre Projektkonfigurationsvariablen aufzuzeichnen. Ich schlage _config.sass vor.
  2. Definieren Sie Ihre Basisschriftgröße in _config.sass :

    %Vor%
  3. Fügen Sie @import _config.sass am Anfang Ihrer Hauptdatei (en) hinzu.

  4. Aktualisieren Sie den Mix, um die Schriftgröße auf Ihre $ base-font-size zurückzusetzen:

    %Vor%

Hinweis: Wenn Sie die SCSS-Syntax verwenden, müssen Sie die Beispiele hier aktualisieren.

    
Beau Smith 30.12.2012 21:56
quelle

Tags und Links