2012-12-06 4 views
21

Per quanto ne so, uno ha bisogno di usare le virgolette doppie o singole per i font se contengono spazi, come:Perché i nomi dei font necessitano di virgolette?

font-family: "Times New Roman", Times; 
font-family: 'Times New Roman', Times; 

Ma su Google Fonts (http://www.google.com/webfont), vedo anche

font-family: 'Margarine', cursive; 

alcuni addirittura utilizzare in questo modo:

font-family: 'Margarine', 'Helvetica', arial; 

ho trovato questo strano, come le seguenti opere così:

font-family: Arial, Helvetica, sans-serif; 
font-family: Cambria, serif; 

Quindi qual è l'uso corretto delle virgolette sui nomi dei font in CSS?

+2

nomi dei font sono autorizzati a contenere spazi: http: // mathiasbynens.essere/note/non quotate-font-family –

risposta

24

È possibile inserire sempre un nome di famiglia di carattere specifico tra virgolette, doppie o singole, quindi Arial, "Arial" e 'Arial' sono equivalenti. Solo i nomi di famiglia di caratteri generici definiti dal CSS come sans-serif devono essere scritti senza virgolette.

Contrariamente a quanto si crede, non è necessario citare un nome di carattere composto da nomi separati dallo spazio come Times New Roman. Tuttavia, il specraccomanda “per citare i nomi di famiglia dei font che contengono spazio bianco, cifre o caratteri di punteggiatura diversi da trattini”

-5

È necessario utilizzare le virgolette quando c'è uno spazio nel nome del carattere. Se non c'è spazio nel nome del font, è consigliabile lasciarli fuori, anche se non farà male a nulla tranne la dimensione del file per averli ancora.

Esempi:

font-family: "Times New Roman", Times; // ok, and best practice 
font-family: Times New Roman, Times; // incorrect, Browser won't be able to find Times New Roman 
font-family: "Times New Roman", "Times"; // ok, but has extraneous quotes around Times 
+0

Questo è quello che pensavo, ma come ho detto, lo vedo ovunque anche se non c'è spazio e sto cercando di capire la differenza se ce ne sono se faccio "Margarine", "Helvetica", arial; o "Margarine", Helvetica, arial; – Benn

+0

Non c'è differenza. (Ho aggiunto un esempio che si spera possa aiutare.) – greg5green

+0

grazie! Vedo la differenza – Benn

2

ho solo me stesso appreso che le virgolette non sono mai necessario, ma piuttosto consigliato. Tutti impariamo qualcosa di nuovo ogni giorno.

L'altro posto li vede è in proprietà CSS che richiedono un URL

background:url('hithere.jpg'); 
background:url(hithere.jpg); 

Entrambe queste affermazioni stanno andando a lavorare esattamente lo stesso. Lo stesso vale per i caratteri, l'unico posto in cui sono effettivamente richiesti è se ci sono spazi e quale tipo di citazione che usi è irrilevante in questo caso, sii coerente nel modo in cui TU fai le cose e questo è tutto ciò che conta davvero.

+0

grazie, ha più senso ora – Benn

+4

Questo non è vero, tu * * non è necessario ** preventivi per i nomi dei font che contengono spazi. –

+0

Non ne ero a conoscenza, ho modificato la mia risposta per riflettere questo. Grazie per quello. –

1

Per due motivi;

  1. Quando un nome di font-family reale condivide lo stesso nome di un nome di famiglia generica, per evitare confusione con le parole chiave con gli stessi nomi per esempio

    p {font-family: ‘Shift’, sans-serif;}

  2. Quando ci sono più di una parola in un nome font-family per esempio

p {font-family: ‘Times New Roman’, ..... , a generic family name here ;}