Je trouve Unicode pour les caractères spéciaux à partir de la recherche de FileFormat.Info .
Certains caractères sont rendus comme les glyphes classiques en noir et blanc, tels que ⚠ (signe d'avertissement, \u26A0
ou ⚠
). Ceux-ci sont préférables, car je peux leur appliquer des styles CSS (tels que la couleur).
D'autres sont rendus sous forme d'emoji de dessin animé plus récents, tels que ⌛ (sablier \u231B
ou ⌛
). Celles-ci ne sont pas préférables, car je ne peux pas les styliser complètement.
Il semble que le navigateur effectue ce changement, car je suis capable de voir le glyphe de sablier sur Mac Firefox, mais pas sur Mac Chrome ni sur Mac Safari.
Existe-t-il un moyen de forcer les navigateurs à afficher les anciennes versions (monotone plat) à afficher?
Mise à jour : Il semble (des commentaires ci - dessous) il y a un sélecteur de présentation du texte , FE0E
disponible pour appliquer le texte-vs-emoji. Le sélecteur est concaténé en tant que suffixe sans espace sur le code du caractère, comme ⌛︎
pour HTML hex ou \u231B\uFE0E
pour JS. Cependant, il n'est tout simplement pas respecté par tous les navigateurs (par exemple Chrome et Edge).
︎
et\uFE0E
sont corrects (2 et 8) et fonctionnent correctement dans Safari (8 et 9), mais comme le dit la réponse: la prise en charge du navigateur est inégale et Chrome (46) est complètement cassé.Réponses:
Append le sélecteur variation Unicode caractère pour forcer le texte, VS15,
︎
.Cela force le caractère précédent à être rendu sous forme de texte plutôt que sous forme de symbole Emoji.
Résultat: 🔒︎
En savoir plus sur: Symbole Unicode sous forme de texte ou d'emoji
la source
︎
astuce ne fonctionne pas pour moi pour certaines polices. J'ai du mal à trouver une police dont je peux raisonnablement m'attendre à être installée sur toutes les machines (Windows, iOS, Mac, Android, etc.).J'avais un caractère Unicode dans le
content
de aspan::before
, et j'avais lefont-family
de l'span
ensemble sur "Segoe UI Symbol". Mais Chrome a utilisé "Segoe UI Emoji" comme police pour le rendre.Cependant, lorsque j'ai défini le
font-family
sur "Segoe UI Symbol" explicitement pour lespan::before
, plutôt que juste pour lespan
, cela a fonctionné.la source
Pour une solution CSS uniquement pour empêcher iOS d'afficher des emojis, vous pouvez utiliser par
font-family: monospace
défaut la variante de texte du glyphe plutôt que la variante d'emoji.la source
Les polices Android ne sont pas riches comme vous pouvez vous y attendre. Les fichiers de polices n'ont pas ces glyphes exotiques et Android a un hack pour quelques caractères sans glyphe. Ils sont remplacés par des icônes.
La solution est donc d'intégrer le site avec une police web (woff). Créez un nouveau fichier de police avec FontForge et choisissez le glyphe requis dans le TTF serif gratuit par exemple. Chaque glyphe prend 1k. Générez un fichier woff.
Préparez du CSS simple pour importer la famille de polices personnalisée.
style.css:
fichier index.html:
la source
Si votre principale préoccupation est de forcer l'affichage monochromatique afin que les emoji ne se détachent pas trop du texte, les filtres CSS, seuls ou en combinaison avec le sélecteur de variation Unicode, peuvent être quelque chose que vous voulez.
Contrairement au sélecteur de variantes, la façon dont les emoji sont rendus ne devrait pas avoir d'importance, car les filtres CSS s'appliquent à tout. (Je les utilise pour les icônes de "type de lien" au format PNG en niveaux de gris sur des liens hypertexte qui ont été modifiés pour pointer vers la Wayback Machine.)
Faites attention à la mise en garde . Vous ne pouvez pas remplacer le filtre d'un élément parent dans un enfant, donc cette technique ne peut pas être utilisée pour mettre à l'échelle un paragraphe en niveaux de gris, puis re-coloriser les liens qu'il contient. 😢
... encore, c'est utile dans les situations où vous allez soit faire de tout un lien hypertexte, soit interdire le balisage riche en son sein. (par exemple, titres et descriptions)
Cependant, cela ne fonctionnera pas à moins que CSS ne soit réellement appliqué, donc je vais donner une deuxième option qui est plus fiable dans les
<title>
éléments que le sélecteur de variation Unicode (je vous regarde GitHub. Je n'aime pas les fausses icônes dans mon onglets du navigateur):Si vous insérez une chaîne fournie par l'utilisateur dans un
<title>
élément, filtrez les emoji avec tout gras / italique / souligné / etc. balisage. (Oui, pour ceux qui l'ont manqué, la norme exige que le contenu de<title>
soit du texte brut à part les esperluettes et les échappements et les navigateurs que j'ai testés interprètent toutes les balises comme du texte littéral.)Les deux façons dont je peux penser sont:
emoji
package pour la base de données, mais Rust est un bon exemple de langage où l'itération des grappes de graphèmes est rapide et facile via une caisse commeunicode-segmentation
.)la source
Google Chrome, version de bureau 75, semble lever l'ambiguïté de son approche du rendu des caractères Unicode en fonction du premier échappement Unicode qu'il rencontre lors du chargement d'une page. Par exemple, lorsqu'il est analysé comme le premier échappement HTML Unicode dans une source de page, et n'ayant pas d'équivalent emoji, & # 9207; semble clarifier à Chrome que la page contient des échappements qui ne doivent pas être rendus sous forme d'emoji.
la source
En développant la réponse de ssokolow , utiliser un filtre est agréable et rend au moins les contours visibles au lieu d'utiliser une simple police, mais la conversion d'une couleur RVB en une séquence de filtres CSS est très difficile lorsque vous souhaitez utiliser une couleur spécifique.
Une meilleure option (quoique assez verbeuse) consiste à utiliser le
<feColorMatrix>
filtre SVG. Combiné avec le filtre en niveaux de gris et le schéma d'URI de données, vous pouvez représenter la couleur via RVB et CSS en ligne:Malheureusement, vous ne pouvez pas interpoler l'URL avec des données (issues d'attributs ou de variables), mais au moins vous n'avez pas à calculer les filtres CSS à partir de RVB.
la source
Je ne connais pas de moyen de désactiver le rendu de type emoji. J'utilise généralement une police d'icônes telle que font awesome ou glyphicons (livré avec Bootstrap 3).
L'avantage de les utiliser par rapport aux caractères Unicode est que
Le seul inconvénient est que c'est une autre chose que le navigateur doit télécharger lorsqu'il consulte votre page.
la source
Pour moi, sur OSX, la solution était de définir la famille de polices sur
EmojiSymbols
la source
Aucune des solutions ci-dessus ne fonctionnait pour l'extension "Emoji pour Google Chrome".
Donc, comme solution de contournement, j'ai fait une capture d'écran du caractère Unicode 'BALLOT BOX WITH CHECK' (U + 2611) et l'ai ajouté comme image avec php:
Voir: https://spacetrace.org/man_card.php?tec_id=21&techname=multi-emp-vessel
la source