Berechnen Sie einen Prozentsatz mit SCSS / SASS


121

Ich möchte eine Breite in Prozent in scss über die Berechnung festlegen, aber es gibt mir Fehler.

Ungültiges CSS nach "...- Breite: (4/12)%": erwarteter Ausdruck (z. B. 1px, fett) war ";"

Ich möchte so etwas tun

$my_width: (4/12)%;

div{
width: $my_width;
}

Wie füge ich dort das% -Zeichen hinzu?

Gleiche Frage mit px und em


1
Es gibt nichts zu fummeln. Ich möchte nur die Einheit der Zahl zur Berechnung hinzufügen. Gleich wie (400/20) px. Wie habe ich eine Zahl und px / em /% in scss? Auf diese Weise könnte ich "globale Variablen" haben, die ich einmal ändern kann
Nick Ginanto

Versuchen Sie, eine Klammer wie $ my_width hinzuzufügen: ((4/12)%);
Sri

Ups .. Entschuldigung, ich hatte keine Gelegenheit, dies zu überprüfen und noch einmal zu versuchen. {$ My_width: (4/12)%;}
Sri

Antworten:


211

Haben Sie den Prozentsatz ausprobiert ? ?

$my_width: percentage(4/12);
div{
width: $my_width;
}

1
Gibt es eine ähnliche Funktion für px und em?
Nick Ginanto

1
Ich bin mir nicht sicher, aber im Quellabschnitt der Dokumentation sehen Sie die zugrunde liegende Logik: Sass :: Script :: Number.new (value.value * 100, ['%']), also würde ich das denken, wenn sie es nicht tun vorhanden können Sie dies direkt tun oder einige Wrapper-Funktionen selbst erstellen.
Tomas

4
@ NickGinanto für px können Sie einfach +pxam Ende der Zeile hinzufügen , zBwidth: ($foo + $bar) +px
DisgruntledGoat

2
@DisgruntledGoat Nein, sollten Sie nie tun jemals unter keinen Umständen. Das Hinzufügen von Einheiten sollte durch Multiplikation (z. B.) erfolgen. Wenn Sie $foo + $bar * 1pxdie Einheit so verketten, erhalten Sie nur eine Zeichenfolge.
Cimmanon

@cimmanon hat sich das kürzlich geändert? Ich bin mir sicher, dass dies nicht der Fall war, als ich meinen Kommentar gepostet habe.
DisgruntledGoat

30

Ein anderer Weg:

$my_width: 4/12*100%;

div{
width: $my_width; // 33.33333%
}

Sass gibt den Wert in% aus.


13
Beachten Sie, dass ich 100/6 * 1% verwenden musste, damit dies für mich funktioniert, sonst habe ich 1666,67% erhalten.
sp00n

Wo finde ich eine Dokumentation, was * 100% tatsächlich tut?
Ini

1

Ich konnte es so machen:

div{
   width: (4/12)* 1%;
   }

Auf diese Weise müssen Sie keine spezielle Funktion verwenden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.