Verändernden Körper Schriftart,-Größe, basierend auf der Schriftart-Familie mit jQuery
Ich versuche, "Myriad Pro" als meine primäre Schrift mit Arial und wie ein fall-back-etwa so:
font: 13px "Myriad Pro", "Helvetica", "Arial", "sans-serif";
Möchte ich die schriftart ändern-Größe, wenn Sie Arial oder Helvetica ausgewählt werden. Dies ist, was ich habe in jQuery, aber es funktioniert nicht:
$(function(){
if ($("body").css("font") == "Arial") {
$("body").css("font", "10px");
};
});
Ich Schätze Ihre Zeit, Hilfe und Großzügigkeit 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
JavaScript nicht über eine offiziell unterstützte Möglichkeit der Erkennung von Schriftarten, aber diese Bibliothek ist ein annehmbarer workaround: http://www.lalit.org/lab/javascript-css-font-detect
Mit diesem Detektor können Sie dann verwenden:
Beachten Sie auch, dass Sie sollten nur ändern, die
font-size
Eigenschaft. Wenn Sie ändern diefont
Eigenschaft überschreiben Sie die beiden font-size und font-Familien.Alles, was ich gelesen habe auf dieser Seite so weit mich erschreckt! Ich bin besorgt über flackernde text-Größen, seltsames browser Verhalten, Fehlausrichtung, die alle über den Ort aufgrund von Rasse Bedingungen mit anderen Dimensionierung der Elemente, basierend auf Größen.
Das zugrunde liegende problem ist, dass verschiedene Schriftarten haben unterschiedliche Größen, sogar für den gleichen Punkt-Größe - so müssen Sie verstehen, wie verschiedene Schriftarten zu Verhalten, um zu sehen, ob Sie innerhalb akzeptabler Toleranzen.
kam ich auf folgende Merkmale aufweist quick-and-dirty-font-tester. Nur kleben Sie es oben auf Ihrer Webseite innerhalb der
<BODY>
- tag und klicken Sie auf eine schriftart zu wechseln, die schriftart. Testen Sie es auf Mac + PC + iPad und welche Browser Sie unterstützen müssen. Entfernen Sie einfach die Schriftarten von font-Liste, die drastisch brechen Sie Ihr design.Denken Sie daran, wenn Sie Teile Ihrer Seite, die sind eher kritisch, versuchen Sie es mit Arial für diese Abschnitte.
Testen Sie es aus auf JSFiddle.com <-- klicken Sie auf die rote Schrift die Namen in der unteren rechten box
eine sehr einfache jquery-Funktion :
Beispiel :
Können Sie nicht feststellen, welche Schrift verwendet wird der text wiedergegeben. Der Stil ist nicht entsprechend geändert, was die Schriftarten verfügbar sind.
Was Sie tun können, ist zu Messen die Größe ein element, das text enthält, und von diesem decuce welche schriftart verwendet werden könnte, um den text gestalten.
(Beachten Sie auch, dass der Benutzer die Einstellung für die font-Größe auch beeinflussen können, wie Sie dargestellt werden.)
Meine Lösung ist entlang der Linien von dem, was @Guffa schlägt, aber ich würde ein paar verschiedene, vielleicht sogar versteckt, wenn das in allen Browsern funktioniert, der Behälter mit dem gleichen text. Verwenden Sie Klassen, um die schriftart festlegen, auf die verschiedenen Kombinationen-eine mit, eine ohne "Myriad Pro". Vergleichen Sie die Höhen der beiden Container. Wenn Sie identisch sind, dann wissen Sie, es ist gerendert, mit den fallback-Schriften. In Safari 4, bekomme ich 16 und 15, beziehungsweise.
Beispiel:
Beispiel von tvanfosson tatsächlich funktioniert. Sie brauchen die Breite statt Höhe, obwohl zu vergleichen die Schriften. Sie wollen auch auf die zweite schriftart aus der Liste schriftart arial (oder was auch immer fall-back schriftart, die Sie verwenden möchten). Danach vergleichen Sie einfach die Breite, und wenn Sie gleich sind, werden Sie wissen, dass es mit arial in beiden Fällen:
Ich diese nutzen, um Optional laden Sie ein anderes Stylesheet benutzen, eine andere Schriftgröße, wenn segoe ist nicht verfügbar. Grund dafür ist, dass segoe UI ist zu klein 11px und die beiden anderen Schriften sind zu groß auf 12px. Da Segoe UI und Lucida Grande bessere Lesbarkeit, ich versuche, verwenden Sie diese zuerst. Im Vergleich zu arial, die ich kenne, ob Sie auf dem system, Dank tvanfosson.
Dieser funktioniert perfekt. Ich weiß nicht, warum der Kerl, der das gepostet hat, wählte, um es zu löschen..
Edit: NickFitz ist richtig, da es ja nicht funktioniert. Ich Dummerchen, habe aufgeregt und übersehen die falschen änderungen wurde es macht.