html - mundo - cosas raras en el mar
¿Por qué las cosas raras en el atributo de color de fuente producen colores reales? (4)
Esta es una pregunta intrigante.
A través de una breve experimentación, he encontrado que "Suerte" produce el mismo color (a mis ojos, de todos modos) como "LuckyCharms", pero "LuckBeALady" te da un tono más oscuro, mientras que "LuckBeALadyTonight" es más azul.
Por cierto, mi primer pensamiento fue que estaba actuando sobre los caracteres hexadecimales reconocibles, pero eso convierte a "LuckyCharms" en cca, que se volvió negro. Las combinaciones de los 0 y los caracteres hexadecimales, como sugiere Madara Uchiba, no lograron reproducir el mismo verde hierba como "LuckyCharms".
No tengo una respuesta tho.
Posible duplicado:
¿Por qué HTML cree que "chucknorris" es un color?
Estoy enseñando un jr. clase de programación web de la escuela secundaria / secundaria, y comenzamos con elementos y atributos simples como la fuente y el color antes de pasar a CSS. Sé que el color está en desuso y la fuente no está incluida en HTML5, pero para fines didácticos, me parece conveniente comenzar con etiquetas HTML simples y acceder a CSS. Los estudiantes obtienen mucha alegría de poder cambiar los colores en una página durante la primera semana de clase. (También les enseño carpa y pestañeo en la semana 1, pero les informo que si alguna vez los usan, perderán puntos).
Uno de los estudiantes comenzó a enviar tareas con cosas raras en los valores de los atributos de color, como "Skittles" o "Spiderman". Comencé a experimentar con esto y descubrí que casi todo lo que colocas en el atributo color = "" en la etiqueta de fuente produce algún tipo de color. Y parece que el color es constante en las últimas versiones de IE, Firefox, Chrome, Opera y Safari.
Descubrí que poner "LuckyCharms" como color CSS NO FUNCIONA. Solo parece funcionar donde se esperan los colores en los atributos de HTML, por ejemplo, font color = "LuckyCharms", o body bgcolor = "LuckyCharms".
Estoy tratando de explicarle a mi clase por qué sucede esto, y hasta ahora no he sido capaz de darle sentido o de obtener una buena respuesta de Google. Parece que está siendo interpretado como un código de color, pero no puedo entender cómo.
ACTUALIZACIÓN: después de un poco de prueba y error, he determinado un algoritmo de 5 pasos (usando el enlace proporcionado) para convertir casi cualquier cadena en el color hexadecimal correspondiente. Proporcionaré el algoritmo aquí para la edificación de futuros visitantes:
- Cambia cada carácter no hex a 0.
- Agregue 0 a la cadena hasta que su longitud sea un múltiplo de 3.
- Divida la cuerda en 3 partes iguales.
- Si bien la longitud de las subcadenas es mayor que 2, y las tres subcadenas comienzan con un 0, elimine los 0 iniciales de cada cadena.
- Si la longitud de las subcadenas es aún mayor que 2, trunque cada subcadena a 2 caracteres.
Eso es todo, junta las subcadenas y obtendrás tu código de color hexadecimal. He verificado este algoritmo con aproximadamente 20 muestras diferentes y comparé los resultados usando el selector de color adicional Firefox ColorZilla.
Tenga en cuenta que, en este caso, las reglas SÍ se especifican específicamente en el enlace especificado en una de las respuestas y todos los navegadores las cumplirán. Por lo tanto, es algo con lo que puede contar para trabajar en cualquier navegador (si realmente desea usar nombres de colores divertidos).
La especificación HTML 5 incluye las reglas para analizar colores heredados .
Son bastante largos y están diseñados para permitir que los navegadores sean consistentes sobre cómo manejan el código roto.
La respuesta básica para lo que se espera que suceda es "depende del navegador". Uno de los problemas con las versiones anteriores de HTML antes de 5 es que no se especifica qué sucede cuando el navegador encuentra un HTML no estándar. La interpretación de @Madara Uchiha es un ejemplo de cómo un navegador podría interpretar la especificación de color, pero es tan aceptable, en términos de estándares, que el navegador se cuelgue o expulse la bandeja de CD o cambie la resolución de su monitor a 400x300. px. Por supuesto, esto no es ideal, por lo que lo que está viendo es la idea de un programador, al mismo tiempo, sobre lo que debería suceder si se encuentra una especificación de color HTML no estándar.
La razón por la que no sucede con CSS es que es un analizador diferente que interpreta el color. Este mismo analizador interpreta el color ya sea en línea CSS o en un documento CSS enlazado. CSS define qué sucede con un valor incorrecto cuando se lo encuentra: se ignora y no afecta en absoluto al documento.
Yo diría que este es un buen momento para hablar con la clase sobre el cumplimiento de los estándares, ya que este es un campo crítico de comprensión para los estudiantes, y para algunos profesionales que tengo la desgracia de saber. Cuando dicen: "Pero Skittles en color funciona bien", puedes decirles que funciona bien cuando lo miran , pero es muy posible que se bloquee el navegador de sus instructores, lo que les daría una gran ganancia. Eso está tan cerca. a un escenario del mundo real que pueda obtenerse, cuando algunos de nosotros tengamos que renunciar a nuestros fines de semana porque en el momento de la demostración el código de mierda de otra persona no funciona correctamente.
No estoy amargado sin embargo. Principalmente :)
Muy interesante. Parece que el navegador interpretará cualquier carácter que pueda (af) y deje el resto en 0 si no puede coincidir. Por ejemplo:
Spiderman
00DE0 A
Todavía necesita más experimentación sin embargo.