Kürzlich habe ich die Methode calc (...) in CSS verwendet. Ich habe schnell gelernt, dass Code wie: width: calc(100%-2)
wird nicht funktionieren, obwohl das Hinzufügen von Leerraum vor und nach dem -
-Operator wird das Problem beheben und die Calc-Methode wird ordnungsgemäß funktionieren.Warum muss ein + oder - innerhalb der Calc() - Methode mit Leerzeichen umgeben sein?
Nach einem wenig Forschung tun, fand ich mehr Blog-Posts verweisen, dass die Leerzeichen erforderlich sind, und viele haben sogar auf die Spezifikation hingewiesen (CSS3 8.1.1), die besagt:
Zusätzlich ist Leerzeichen erforderlich auf beide Seiten der + und - Betreiber. (Der * und/opera kann um sie herum ohne Leerzeichen verwendet werden.)
nun klar, die spec uns sagt, dass diese Operatoren in Leerzeichen gewickelt werden muss, aber warum? Ich habe weiter in der Spezifikation gelesen (durch Abschnitte 8.1.2-4) und wenn es in diesen zusätzlichen Teilen erklärt wird, verstehe ich die Argumentation nicht.
In einfachen Worten, könnte jemand erklären, warum es angegeben wurde, dass calc(100% - 1)
oder sogar calc(100%/2)
ist akzeptabel Syntax, aber nicht calc(100%-1)
?
Ich gehe davon aus, dass es so ist, dass man Verwenden Sie negative Zahlen in Berechnungen. – Turnip
@Festive Ich verstehe nicht, warum Sie dort negative Zahlen brauchen? – nicael
@FestiveTurnip Das ist keine gute Annahme. Leerzeichen sind kaum erforderlich, um ein binäres '-' von einem unären' -' zu unterscheiden. Sie werden nicht, dass keine andere Sprache erfordert, dass Sie "3-2" anstelle von "3-2" schreiben. – meagar