CSS hack para Safari

Con la reciente salida de Safari 3 en Windows no es mala idea darle un poquitín de soporte si no es mucha molestia. Estuve buscando por la web y muchos de los hacks disponibles no funcionaban con las versiones nuevas y con las muy viejas tampoco. Así que me vine con este ejemplo que funciona muy bien. No recuerdo la página donde lo tomé, pero si buscáis en Google seguro saldrán algunas páginas donde está el mismo ejemplo.

Para lograr el efecto, demos escribir la primera regla para todos los navegadores, o sea, sin hack alguno:

div#prueba p { color: #f00; } /* IE, Firefox, etc. */

Cuando toque mover el asunto en Safari, escribimos otra línea con el siguiente hack:

div#prueba p { color: #f00; } /* IE, Firefox, etc. */
/*\*/
html*#prueba p { color: #690; } /* sólo en safari */

Es importante que contenga el juego de comentarios /*\*/ y el selector html* para que sólo sea útil para Safari. Pueden ver un ejemplo terminado en este archivo de prueba.

7 Comentarios en “CSS hack para Safari”

Gravatar de Telendro

Telendro
3 de Julio de 2007 a las 8:34 pm    

Más que dar soporte no sé si será trabajar para Apple. Haciendo estas cosas se acaba con navegadores que hacen lo que le sale de las p….

Gravatar de Jorge del Casar

Jorge del Casar
4 de Julio de 2007 a las 9:46 am    

Hay un pequeño proble, ese hack no valida CSS. Así que no se debe utilizar si no cumple standares. A seguir buscando.

Como bien comenta Telendro ¿Hasta que punto es necesario buscar un hack para Safari? No suele discrepar mucho con respecto a Firefox, o eso creo.

Gravatar de mini-d

mini-d
4 de Julio de 2007 a las 11:07 am    

Sip, es la única macana que tiene, bueno, el 90% de los hacks generan algún tipo de error.

Gravatar de LoBo

LoBo
4 de Julio de 2007 a las 12:48 pm    

Ese hack aparte de no validar…. se ve verde en internet explorer 6 y 7… solo se ve en rojo en firefox y opera… vamos cuando lo vi ya sospechaba q era un hack del estilo del explorer y está confirmado.

Gravatar de eduo

eduo
4 de Julio de 2007 a las 1:44 pm    

Telendro: Para Apple y para KDE, que es el mismo hack para Konqueror.

Algo que me pareceria interesante es hacer un par de cosas:

-Pensar cuando algo no funciona en Safari igual que en Firefox si es porque Apple no sigue el estándar o porque Firefox no lo hace (o ninguno de los dos). Ponemos las manos al fuego por Firefox y asumimos que si ahi funciona de una forma cualquiera que funcione diferente no cumple los estándares. Esto obviamente no es cierto.

-Aunque un fichero valide no significa que lo que muestra FF (o Safari) es lo que debería de mostrar. El estándar permite tal margen de libertad en la presentación que realmente cada navegador hace, como dice Telendro, hace lo que le sale de las P… (aunque nos gustaria pensar que Firefox es el que menos lo hace).

Solemos tener concesiones con Opera y cuando empezó Firefox las teníamos con ellos. Que no se nos olvide que la razón por la que odiamos hacer hacks es porque el IE nos obliga al ignorar conscientemente los estándares. Sabemos que Opera los intenta seguir y de la misma forma (si nos informamos) veremos que Safari hace lo mismo. Intenta seguir y en algunas cosas es incluso mas estricto que Firefox.

Lo mejor es que si veis algo en lo que no funciona safari (y que DEBERIA funcionar) se reporte para que se arregle. Con frecuencia todas las incompatibilidades que vienen de no aplicar correctamente un estandar se resuelven rapidamente. Incluso es posible subir codigo para resolverlo si uno sabe como y tiene la inclinacion.

En algunos casos (lo se, me han tocado), el que no cumple realmente el estandar es Firefox (o, con mas frecuencia, lo interpreta de forma diferente). En esos casos lo mas probable es que Safari no cambie (ni deberia).

Puse algo mas extendido en torresburiel.

Gravatar de Borja

Borja
4 de Julio de 2007 a las 2:31 pm    

Con los estándares web, sucede algo parecido a lo que ocurre con las leyes.

Existe una ley (o estándar) que rige determinados comportamientos, pero como es tan inmensa la cantidad de combinaciones posible, existe un juez (o navegador) que tiene que interpretar y aplicar dichas leyes.

La única diferencia en el supuesto anterior, es que si un juez se salta las leyes a la torera es expulsado, mientras que en el caso de los navegadores el que se salta las leyes, es precisamente el más popular.

Gravatar de eduo

eduo
4 de Julio de 2007 a las 4:53 pm    

Borja: No se si el mas popular. El mas usado seguro pero yo no llamaria a IE popular. Tolerado, si acaso :)

Más entradas en Minid.net