Estoy encontrando Unicode para caracteres especiales de la búsqueda de FileFormat.Info .
Algunos caracteres se representan como los glifos clásicos en blanco y negro, como ⚠ (señal de advertencia \u26A0
o ⚠
). Estos son preferibles, ya que puedo aplicarles estilos CSS (como el color).
Otros se muestran como emoji de dibujos animados más nuevos, como ⌛ (reloj de arena \u231B
o ⌛
). Estos no son preferibles, ya que no puedo diseñarlos completamente.
Parece que el navegador está haciendo este cambio, ya que puedo ver el glifo del reloj de arena en Mac Firefox, pero no en Mac Chrome ni Mac Safari.
¿Hay alguna forma de obligar a los navegadores a mostrar las versiones anteriores (planas y monótonas)?
Actualización : Parece (de comentarios abajo) hay un selector de presentación del texto , FE0E
disponible para hacer cumplir texto-vs-emoji. El selector está concatenado como un sufijo sin espacio en el código del carácter, como ⌛︎
para HTML hexadecimal o \u231B\uFE0E
para JS. Sin embargo, simplemente no es compatible con todos los navegadores (por ejemplo, Chrome y Edge).
︎
y\uFE0E
son correctos (2 y 8) y funcionan bien en Safari (8 y 9), pero como dice la respuesta: el soporte del navegador es irregular y Chrome (46) está completamente roto.Respuestas:
Añada la variación selector de Unicode de caracteres para forzar el texto, vs 15,
︎
.Esto obliga al carácter anterior a representarse como texto en lugar de como un símbolo emoji.
Resultado: 🔒︎
Más información en: símbolo Unicode como texto o emoji
fuente
︎
truco no me funciona con ciertas fuentes. Me está costando encontrar una fuente que razonablemente pueda esperar que se instale en todas las máquinas (Windows, iOS, Mac, Android, etc.).Tenía un carácter Unicode en el
content
de aspan::before
, y tenía elfont-family
delspan
conjunto en "Segoe UI Symbol". Pero Chrome usó "Segoe UI Emoji" como fuente para renderizarlo.Sin embargo, cuando configuré el
font-family
"Símbolo de IU de Segoe" explícitamente paraspan::before
, en lugar de solo paraspan
, funcionó.fuente
Para que una solución solo de CSS evite que iOS muestre emojis, puede usar
font-family: monospace
el valor predeterminado de la variante de texto del glifo en lugar de la variante de emoji.fuente
Las fuentes de Android no son tan ricas como cabría esperar. Los archivos de fuentes no tienen estos glifos exóticos y Android tiene un truco para algunos caracteres sin glifos. Se reemplazan con iconos.
Entonces, la solución es integrar el sitio con una fuente web (woff). Cree un nuevo archivo de fuente con FontForge y elija el glifo requerido de TTF serif libre, por ejemplo. Cada glifo ocupa 1k. Genere un archivo woff.
Prepare CSS simple para importar la familia de fuentes personalizada.
style.css:
archivo index.html:
fuente
Si su principal preocupación es forzar la visualización monocromática para que los emoji no se destaquen demasiado del texto, los filtros CSS, ya sea solos o en combinación con el selector de variación Unicode, pueden ser algo que desee.
A diferencia del selector de variaciones, no debería importar cómo se representen los emoji, porque los filtros CSS se aplican a todo. (Los uso para escalar iconos de tipo de enlace en formato PNG en escala de grises en hipervínculos que se han modificado para apuntar a Wayback Machine).
Solo ten en cuenta la advertencia . No puede anular el filtro de un elemento principal en un elemento secundario, por lo que esta técnica no se puede usar para escalar un párrafo en escala de grises y luego volver a colorear los enlaces dentro de él. 😢
... aún así, es útil para situaciones en las que convertirá todo en un hipervínculo o rechazará el marcado enriquecido dentro de él. (por ejemplo, títulos y descripciones)
Sin embargo, esto no funcionará a menos que se aplique CSS, así que daré una segunda opción que es más confiable en
<title>
elementos que el selector de variación Unicode (te estoy mirando GitHub. No me gustan los íconos falsos en mi pestañas del navegador):Si está colocando una cadena proporcionada por el usuario en un
<title>
elemento, filtre el emoji junto con cualquier negrita / cursiva / subrayado / etc. margen. (Sí, para aquellos que se lo perdieron, el estándar exige que el contenido de<title>
sea texto sin formato además de los caracteres de escape y los navegadores que probé interpretan todas las etiquetas como texto literal).Las dos formas en las que puedo pensar son:
emoji
paquete para la base de datos, pero Rust es un buen ejemplo de un lenguaje donde la iteración de grupos de grafemas es rápida y fácil a través de una caja comounicode-segmentation
).fuente
Google Chrome, versión de escritorio 75, parece eliminar la ambigüedad de su enfoque para representar caracteres Unicode basándose en el primer escape Unicode que encuentra al cargar una página. Por ejemplo, cuando se analiza como el primer escape HTML Unicode en una fuente de página y no tiene un equivalente emoji, & # 9207; parece aclararle a Chrome que la página contiene escapes que no se deben representar como emoji.
fuente
Ampliando la respuesta de ssokolow , usar un filtro es bueno y al menos hace que los contornos sean visibles en lugar de usar una fuente simple, pero convertir un color RGB en una secuencia de filtros CSS es muy difícil cuando se desea usar un color específico.
Una opción mejor (aunque bastante prolija) es usar el
<feColorMatrix>
filtro SVG. Combinado con el filtro de escala de grises y el esquema de URI de datos, puede representar el color a través de RGB y CSS en línea:Desafortunadamente, no puede interpolar la URL con datos (tomados de atributos o variables), pero al menos no tiene que calcular filtros CSS a partir de RGB.
fuente
No conozco una forma de desactivar el renderizado de tipo emoji. Por lo general, utilizo una fuente de iconos como font awesome o glyphicons (viene con Bootstrap 3).
El beneficio de usar estos sobre los caracteres Unicode es que
El único inconveniente es que es una cosa más que el navegador debe descargar cuando ven su página.
fuente
Para mí en OSX, la solución fue establecer la familia de fuentes en
EmojiSymbols
fuente
Ninguna de las soluciones anteriores funcionó para la extensión "Emoji para Google Chrome".
Entonces, como solución , hice una captura de pantalla del carácter Unicode 'BALOT BOX WITH CHECK' (U + 2611) y la agregué como imagen con php:
Ver: https://spacetrace.org/man_card.php?tec_id=21&techname=multi-emp-vessel
fuente