Ich habe einen Artikel zu text-rendering
in css gelesen.
Laut diesem Blog:
Mit der Eigenschaft
text-rendering
in CSS können Sie die Qualität von auswählen Text über Geschwindigkeit (oder umgekehrt) ermöglicht Ihnen die Feinabstimmung der Optimierung indem ich dem Browser vorschlage, wie er Text auf dem Bildschirm. Es stellt der Rendering-Engine Informationen zur Verfügung, um was zu tun Optimieren für das Rendern von Text. Der Browser macht Kompromisse zwischen Geschwindigkeit, Lesbarkeit und geometrische Präzision.
Auch ist es jetzt für Optimierungszwecke nützlich, um die Seitenladezeit zu verringern, wie dort erwähnt. Aber einige Begriffe verwirrten mich beim Lesen dieses Artikels und ich dachte, dass Experten hier diese Begriffe zum besseren Verständnis ausarbeiten würden. Also hier sind diese Begriffe:
Was ist mit Rendering gemeint? wie es gemacht wird (in Bezug auf CSS)?
Was ist Lesbarkeit?
Kann jemand bitte zwischen optimizeLegibility
und optimizeSpeed
unterscheiden? Wie und wo sollte jeder von ihnen oder beides verwendet werden?
Auch außer IE jeder Browser unterstützt diese Eigenschaft, So einfach 81.0% der Welt wird kein Problem haben, es zu benutzen. Deshalb stelle ich diese Frage, um das Verständnis dieser Konzepte zu klären.
Was ist mit Rendern gemeint? wie es gemacht wird (in Bezug auf CSS)?
Ich würde sagen, "Rendern" entspricht in etwa der Anweisung, was sollte sein sollte und materialisiert es in etwas Greifbares (in diesem Fall Pixel auf einem Display).
"Rendern" umfasst viel mehr als nur Text , wenn Sie über einen Webbrowser sprechen. Beim Rendern sind viele Komponenten und Stufen beteiligt.
Das Text-Rendering beeinflusst das Layout (Breite, Höhe, Zeilenumbruch usw.) und beeinflusst das Malen ("zeichne diese Pixel und / oder diese Zeichenkette").
Hier ist ein interessantes Zitat vom IE-Team, das erklärt, wie der Prozess in IE9 + gemacht wird:
Zusätzlich zur überragenden Textpositionierung, Internet Explorer 9 auch bietet hardwarebeschleunigten Text. Die Aufgabe, sowohl Text als auch Grafik wurde von der Zentraleinheit (CPU) und auf die Grafikverarbeitungseinheit (GPU). Dies wird erreicht mit sowohl DirectWrite als auch Direct2D-Teil der DirectX-Familie von APIs - mit denen Internet Explorer 9 die zugrunde liegende Hardware verwenden kann durch Windows.
Dies ist ein häufiges Thema unter den meisten (allen?) Browsern: Sie geben die letzte (n) Stufe (n) ihres Text-Renderings an eine darunterliegende Ebene weiter, die näher am Gerät selbst liegt.
Zum Beispiel verwendet Webkit eine GraphicContext
Abstraktion, um mit dem Betriebssystem zu sprechen. ( Ausgezeichnete Diskussion über Rendering in WebKit ). Jedes Betriebssystem kann eine andere Implementierung haben. Und jeder Port von WebKit kann anders sein .
Das bedeutet nicht, dass die Rendering-Engine den darunter liegenden Layern keine detaillierten Hinweise / Anweisungen geben kann. Es bedeutet , dass die Ergebnisse je nach Hardware, Betriebssystem, Browser und Schriftarten variieren.
Was ist Lesbarkeit?
"Die Qualität, klar genug zu sein, um zu lesen" ( Quelle ) oder "Lesbarkeit ist der Grad welche Glyphen (einzelne Zeichen) im Text aufgrund des Aussehens verständlich oder erkennbar sind. " ( Quelle )
Dies stimmt mit der Beschreibung von optimizeLegibility
überein:
Der Browser betont Lesbarkeit gegenüber Rendering-Geschwindigkeit und geometrisch Präzision. Dies ermöglicht Kerning und optionale Ligaturen.
Mit anderen Worten, der Browser (über die Rendering-Engine) kann zusätzliche Schritte unternehmen, um Text in einer Weise anzuzeigen, die leichter zu lesen und / oder visuell ansprechender ist.
Es kann zusätzliche Ligatur Informationen verwenden, die in der Schriftart enthalten sind, und es kann den Abstand zwischen Buchstaben anpassen ( Kerning ).
Kann bitte irgendjemand zwischen optimizeLegibility und unterscheiden optimizeSpeed?
Qualität (Lesbarkeit) gegenüber Menge (Geschwindigkeit, dh Anzahl der Zeichen, die in einem bestimmten Zeitraum gerendert werden).
optimizeSpeed: Der Browser betont die Rendergeschwindigkeit gegenüber der Lesbarkeit und geometrischen Genauigkeit beim Zeichnen von Text. Es deaktiviert Kerning und Ligaturen.
optimizeLegibility: Der Browser betont Lesbarkeit gegenüber Rendering-Geschwindigkeit und geometrische Präzision. Dies ermöglicht Kerning und optional Ligaturen.
Wie und wo sollte jeder von ihnen oder beide verwendet werden?
Nur einer von ihnen (falls vorhanden) sollte verwendet werden. Persönlich würde ich nur text-rendering
angeben, nachdem ich gesehen habe, dass es sich positiv ausgewirkt hat und auf allen Geräten gut funktioniert hat (was eine entmutigende Aufgabe ist).
Auch außer IE unterstützt jeder Browser diese Eigenschaft, also einfach 81.0% der Welt wird kein Problem haben, es zu benutzen.
Ich denke, dass diese Aussage zu optimistisch sein kann. Berücksichtigen Sie auch nicht den Internet Explorer, der aufgrund seiner engen Hardwareintegration den Text oft sehr gut darstellt.