Muss ich Schriftarten in CSS in Anführungszeichen setzen?

92

Ich erinnere mich, dass ich vor langer Zeit gehört habe, dass es als "Best Practice" angesehen wurde, Schriftarten, die mehrere Wörter in der Eigenschaft der CSS-Schriftfamilie enthalten, in Anführungszeichen zu setzen:

font-family: "Arial Narrow", Arial, Helvetica, sans-serif;

Zum Teufel habe ich versucht, die Anführungszeichen zu entfernen, "Arial Narrow"und Safari und Firefox haben keine Probleme beim Rendern.

Gibt es also eine Logik für diese Faustregel oder ist es nur ein Mythos? War es ein Problem mit älteren Browsern, das für die aktuellen Versionen nicht mehr gilt? Ich mache das schon so lange, dass ich nie aufgehört habe zu überlegen, ob es tatsächlich notwendig ist.

daGUY
quelle
Ich denke, es ist eine gute Idee, jede Schriftfamilie zu zitieren, weniger die generischen. Es hält die Dinge konsistent.
Micah Henning

Antworten:

78

Die CSS 2.1-Spezifikation sagt uns, dass:

Schriftfamiliennamen müssen entweder als Zeichenfolgen oder als Folge einer oder mehrerer Bezeichner ohne Anführungszeichen angegeben werden. Dies bedeutet, dass die meisten Satzzeichen und Ziffern am Anfang jedes Tokens in nicht zitierten Schriftfamiliennamen maskiert werden müssen.

Es heißt weiter:

Wenn eine Folge von Bezeichnern als Name der Schriftfamilie angegeben wird, ist der berechnete Wert der Name, der in eine Zeichenfolge konvertiert wird, indem alle Bezeichner in der Folge durch einzelne Leerzeichen verbunden werden.

Um Fehler beim Escapezeichen zu vermeiden, wird empfohlen, Schriftfamiliennamen anzugeben, die andere Leerzeichen, Ziffern oder Satzzeichen als Bindestriche enthalten:

Also ja, es gibt einen Unterschied, aber einen, der wahrscheinlich keine Probleme verursacht. Persönlich habe ich immer Schriftnamen zitiert, wenn sie Leerzeichen enthalten. In einigen (vermutlich sehr seltenen) Fällen sind die Anführungszeichen unbedingt erforderlich:

Familiennamen von Schriftarten, die zufällig mit einem Schlüsselwortwert identisch sind ("erben", "Serife", "serifenlos", "Monospace", "Fantasie" und "Kursiv"), müssen in Anführungszeichen gesetzt werden, um Verwechslungen mit den Schlüsselwörtern zu vermeiden mit den gleichen Namen. Die Schlüsselwörter "initial" und "default" sind für die zukünftige Verwendung reserviert und müssen auch in Anführungszeichen gesetzt werden, wenn sie als Schriftnamen verwendet werden.

Beachten Sie auch, dass Interpunktion wie / oder! innerhalb eines Bezeichners muss möglicherweise auch in Anführungszeichen gesetzt oder maskiert werden.

James Allardice
quelle
6
initialund defaultsind auch Schlüsselwörter (sie sind für die zukünftige Verwendung reserviert). Siehe Nicht zitierte Schriftfamiliennamen in CSS .
Mathias Bynens
21

Gemäß der CSS Fonts Module Level 3-Spezifikation vom Oktober 2013 müssen " andere Schriftfamiliennamen als generische Familien entweder als Zeichenfolgen in Anführungszeichen oder als Folge eines oder mehrerer Bezeichner nicht in Anführungszeichen gesetzt werden ". Sie müssen sie also NICHT in Anführungszeichen setzen.

Wenn Sie dies jedoch nicht tun, müssen "die meisten Satzzeichen und Ziffern am Anfang jedes Tokens maskiert werden ". Um Fehler zu vermeiden, empfiehlt das W3C, Schriftfamiliennamen mit Leerzeichen, Ziffern, Satzzeichen oder Schlüsselwortwerten ("erben", "Serife" usw.) zu zitieren .

Die generischen Schriftfamiliennamen ("Serife", "Sans-Serif", "Kursiv", "Fantasie" und "Monospace") dürfen NICHT zitiert werden, da es sich tatsächlich um Schlüsselwörter handelt.

djip.co
quelle
0

Wenn der Stil wie inline ist <font style="font-family:Arial Narrow">some texte</font>, funktioniert er.

Wenn der Name der Polizeischrift jedoch einige Sonderzeichen enthält oder mit einer Zahl beginnt, die Anführungszeichen oder andere seltsame Dinge enthält (wie "01 Digitall" oder "a_CityNovaTitulB & WLt" oder "Bailey'sCar"), müssen Sie eine spezielle Syntax mit verwenden & quot; Dies kann auf alle Arten von Stranges-Schriftarten angewendet werden:

<font style="font-family:&quot;a_CityNovaTitulB&WLt&quot; , &quot;Bailey'sCar&quot;">some text</font>

In FireFox zeigt die Quelle die & quot; als dies: "

ohne diesen Trick:

<font style="font-family:a_CityNovaTitulB&WLt ,Bailey'sCar">some text</font>

funktioniert nicht automatisch in jedem Browser. Es ist nützlich für Schriftnamen, die mit einer Zahl bis "8 Pin" beginnen.

internetdev
quelle