Chargement d'une police externe via CSS
Est-il possible de charger une police externe via CSS?
Note: je suis pas parler à l'aide d'un fichier CSS externe, avec un @font-face
définition, mais plutôt quelque chose comme ce qui suit:
<h1 style="font-family:myfont;
src:('http://example.com/font/myfont.tff')">test</h1>
Vous devez vous connecter pour publier un commentaire.
Oui, vous pouvez base64 encode une police ou des polices comme indiqué dans cet article de Stephen Scaff et les déposer dans un
style
bloc dans votre page pour éviter de la demande externe.Il peut également être possible d'utiliser cette technique dans la façon dont vous décrivez si le navigateur que vous utilisez prend en charge.
Chaque navigateur moderne prend en charge WOFF2, alors vous devriez probablement utiliser que et seulement que pour l'avenir prévisible. Aussi, cette technique permettra d'améliorer votre vitesse de la page des scores, mais va dégrader les performances dans l'ensemble (même pour le premier chargement de la page), sauf si vous êtes seulement en base64 encodage de la page essentielle de l'actif (par exemple, les glyphes de la police affichés au-dessus du pli) et charger de manière asynchrone le reste.
De Performance de votre meilleur pari est d'utiliser Brotli de compression et le tuyau de la webfont feuille de style vers le bas avec HTTP/2 Server Push.
<h1 style="...">
Vous ne pouvez pas inclure un
@font-face
règle dans unstyle
attribut (qui est “CSS” dans le sens le plus étroit). Par la spécification HTML 4.01, vous ne pouvez pas inclure une telle règle à l'intérieur de labody
éléments à tous (“CSS” dans un sens plus large, qui inclutstyle
éléments). Mais dans la pratique il est possible.Dans la pratique, si vous incluez un
style
élément à l'intérieur d'body
, il sera traité par les navigateurs comme si elle était dans le syntaxiquement correct place, c'est à dire à l'intérieur de lahead
élément. Cela fonctionne “à l'envers”, effectuant des éléments qui se présentent devant lui.Vous pouvez même faire de cette approche – qui devrait être utilisé seulement si vous ne pouvez pas modifier le
head
– formellement correct comme par HTML5 CR. Il permet unstyle
élément au début de tout élément de contenu de flux comme son modèle de contenu. Les navigateurs actuels ignorer lascoped
attribut.Mise à jour: ce qui suit n'est pas pertinent, pas plus, depuis le validateur bogue a été corrigé.
Cependant, il y a un bug dans le Validateur du W3C et de validateur.nu: ils interdire
style
au début debody
. Pour surmonter ce problème, et afin de rendre votre document à valider en plus d'être valide, vous pouvez utiliser undiv
élément:style
éléments, qui peut être appelé “CSS” dans le sens plus large que le code CSS directement apparaît dans un document HTML, au lieu d'être dans un autre document CSS qui est appelé dans le code HTML. Le HTML 4.01 règle qui n'autorisait pas l'style
à l'intérieur debody
a pas un seul endroit dans la spec, car elle résulte de la absence de lastyle
élément à partir du contenu du modèle de l'exception que de lahead
élément.<style scoped></style>
et<style></style>
est rayé de la web désinfectant, mais je peux mettre n'importe quoi à l'intérieur d'unstyle=""
attribut. Aussi, serait-il fonctionner si j'utilise un@import
à l'intérieur d'un attribut de style?@import
ne fonctionne pas à l'intérieur d'unstyle
attribut. Lestyle
valeur de l'attribut ne peut être constituée que de déclarations (nom: valeur), qui sera appliquée à l'élément courant.Non, pas que je sache. Vous devez déclarer ce genre de choses sur un
<style>
bloc ou un fichier CSS externe.Mais si vous voulez quelque chose de ce genre, il est très probable que vous le faites mal.
Though if you want something like this, it's very probable you're doing it wrong.
: Que sur l'incorporation d'une police de caractères sur une seule page mediawiki?Si vous utiliser @font-face, vous devriez être en mesure de faire quelque chose comme ceci:
CSS
Assurez-vous d'inclure les polices de caractères - l'exemple ci-dessus a placé toutes les polices de caractères dans une relative du répertoire du chemin d'accès au fichier css.
HTML
Vous devriez être capable de trouver gratuit sur le web @font-face polices ici.
style=
attribut 😉