Was verwendet der Browser bei Verwendung einer gestapelten Schriftfamilie, wenn KEINE der angegebenen Schriftarten vorhanden ist?

7

Einfaches HTML-Codebeispiel:

<p>font family</p>

Einfaches CSS-Codebeispiel:

p {
    font-family: Arial, Helvettica, sans-serif;
}
  1. Browser sucht nach Arial
  2. Arialist nicht vorhanden, dann sucht esHelvettica
  3. Helvetticaist nicht vorhanden, dann sucht essans-serif

Fragen

  • Was passiert, wenn der Browser diese Schriftfamilien nicht findet ?
  • Wenn der Browser eine Standardschrift verwendet , welche Schrift verwendet er?
Akash Preet
quelle
4
Übrigens hat "Helvettica" nur eine t. sans-serifist eine "generische" Schriftfamilie, es gibt keine Schriftart namens "serifenlos" (was Sie zu implizieren scheinen). Die Standardschriftart "serifenlos" wird im Browser festgelegt (und kann angepasst werden). Arial und Helvetica sind beide serifenlose Schriftarten. Die Standard - serifenlose Schrift ist wahrscheinlich Arial unter Windows und Helvetica auf OS X. Siehe auch sein webmasters.stackexchange.com/questions/33793/...
MrWhite
2
Das Fallback-Verhalten scheint nicht standardisiert zu sein. Aus dem Entwurf des CSS-Fundmoduls Level 3, Abschnitt 5.2 : 7. Wenn keine weiteren zu bewertenden Schriftfamilien vorhanden sind und keine übereinstimmende Fläche gefunden wurde, führt der Benutzeragent eine Fallback-Prozedur für Systemschriftarten durch, um die beste Übereinstimmung für das Zeichen zu finden gerendert werden. Das Ergebnis dieses Verfahrens kann je nach Benutzeragenten variieren .
Jeremy Banks

Antworten:

9

Die Standardschriftart des Browsers wird nicht verwendet. Stattdessen wird die serifenlose Standardschrift verwendet. Da die letzte Schriftart im Schriftstapel keine bestimmte Schriftart ist. Es ist ein generischer Name. In einigen Browsern können Sie es festlegen, oder es wird standardmäßig das Betriebssystem des Benutzercomputers verwendet.

Referenz-URL: https://developer.mozilla.org/en-US/docs/Web/CSS/font-family

marc
quelle
4

Es wird auf die Standardschriftart des Browsers zurückgegriffen. In diesem Fall würde mit der serifenlosen Spezifikation nach der standardmäßigen serifenlosen Schriftart gesucht. Ich denke, für Windows ist diese Schriftart Arial und für Mac ist es Helvetica (zitiere mich nicht dazu, es ist lange her, seit ich gesucht habe). Wenn auf dem Computer keine serifenlose Schriftart vorhanden ist, wechselt der Browser zu seiner globalen Standardeinstellung, die normalerweise Times New Roman ist. Wenn in einer Standardeinstellung keine Schriftart gefunden wird, akzeptiert es das erste, was das System vom Schriftarten-Manager erzeugt.

Joel Etherton
quelle
Wenn Ihr Browser Times New Roman als serifenlose Standardschrift verwendet , ist ein schwerwiegender Fehler aufgetreten. Aber ja, ohne das sans-serifam Ende würde der Browser seine Standard-Fallback-Schriftart auswählen, die normalerweise mit der Standard-Serifenschrift identisch ist, und ziemlich oft Times New Roman oder ähnliches.
Ilmari Karonen
@IlmariKaronen: Selbst mit der serifenlosen Schrift am Ende würde das System, wenn keine serifenlosen Schriftarten definiert sind (unwahrscheinlich, aber möglich), weiterhin auf die nächste Standardeinstellung zurückgreifen, die die Browser-Standardeinstellung von Times New Roman wäre . Ich kann jedoch sehen, dass die Antwort darauf nicht explizit genug ist.
Joel Etherton
1
Technisch heißt es im Standard : "Alle fünf generischen Schriftfamilien sind so definiert, dass sie in allen CSS-Implementierungen vorhanden sind (sie müssen nicht unbedingt fünf verschiedenen tatsächlichen Schriftarten zugeordnet sein)." Also jedes CSS-kompatiblen Browser hat eine „sans-serif“ generische Schriftfamilie haben, obwohl es ist nicht streng auf eine tatsächliche serifenlose Schrift zur Karte garantiert. Aber ja, das ist eine sehr haarspaltende Unterscheidung.
Ilmari Karonen
(Und wenn wir wirklich anfangen, Nissen auszuwählen, gibt es natürlich die Tatsache, dass das Zurücksetzen von CSS-Schriftarten auf Glyphenbasis erfolgt. Der Standard verlangt zwar, dass jeder Browser über eine "serifenlose" Schriftfamilie verfügt, dies jedoch nicht . AFAICT, verlangen, dass die Schriftarten in dieser Familie tatsächlich Glyphen enthalten.)
Ilmari Karonen
1

Es gibt eine Lüge, die sich immer wieder wiederholt: Der Browser wählt den "Systemstandard" für "Serife" oder "serifenlos" aus, wenn andere zuvor in der Liste verfügbare nicht verfügbar sind. In meinen Tests mit Firefox (Iceweasel 38 unter Debian Jessie 8.2) ist der Browser ziemlich intelligent bei der Auswahl einer Schriftart. Es wird eine andere Schriftart ausgewählt, wenn vor "Sans-Serif" "Arial" steht, als dies bei "Verdana" der Fall wäre. Ebenso für Serifen. Außerdem werden die Dehnung und das Gewicht der Schrift berücksichtigt. Erst kürzlich habe ich festgestellt, dass DejaVu Sans ExtraLight automatisch für eine Schriftart ausgewählt wird, von der ich noch nie zuvor gehört habe. Ich würde gerne wissen, wie der Algorithmus funktioniert, wie er in allen Browsern funktioniert, aber dies ist die einzige Antwort, die ich nicht finden kann.

NoName787
quelle