2009-04-30 8 views

Respuesta

7

Ninguno.

Lo mejor es escribir código que funcione en todos los navegadores sin la necesidad de código específico del navegador o hacks de CSS. Por supuesto, no es tan fácil de lograr, por lo que muchas personas usan los otros métodos.

La clave es evitar las cosas que algunos navegadores (muy a menudo Internet Explorer) tienen problemas. Una de ellas es usar relleno en lugar de margen, porque IE no maneja el colapso de margen correctamente.

Algunos métodos que están en la línea del borde de ser piratas informáticos están utilizando un código que no afecta a los navegadores que funcionan correctamente, pero corrige los problemas de un navegador específico. Eso podría ser cosas como especificar una altura para un elemento que normalmente no debería necesitar una, o especificar display:inline en un elemento flotante.

La página Position is everything tiene ejemplos de algunos errores y soluciones sugeridas. (A menudo, la solución es algún tipo de truco, por lo que también debería considerar si puede evitar el problema por completo.)

+0

La mayoría de los problemas que se describen se reduce a la configuración del doctype. Si no haces eso, entonces sí, tendrás diferencias radicales entre los navegadores.Doctype con un restablecimiento css resuelve casi todo bajo uso normal. – NotMe

+0

No, lo que describí se aplica incluso cuando tiene un tipo de documento y un código válidos. Sin eso, estás mucho peor. – Guffa

0

Ni si es posible. Ahora que el viejo Netscape, IE < = 6 etc. ya no son tan utilizados, trato de usar las características que funcionan en todos esos navegadores (por ejemplo, FF> = 2, IE> = 7, Chrome, Opera).

+0

IE6 todavía se usa ampliamente, es algo entre el 15 y el 20% de la cuota de mercado dependiendo de la fuente. – marcgg

3

Es mejor no hacer ninguna de las dos cosas.

Un buen css-reset y CSS que funciona con el mismo navegador cruzado es una solución mucho mejor.

Si su diseño lo excluye por completo, entonces (y solo entonces) probaría los hacks o los comentarios condicionales de IE.

Todavía no he visto la necesidad de archivos mutliple css (más allá de algunas correcciones de IE6 dirigidas a través de un comentario condicional).

0

Conditional comments para los problemas con Internet Explorer parecen ser la norma. Combinado con un poco de JavaScript, como Dean Edward's ie7.js puede mitigar la mayoría de los problemas de navegador cruzado sin recurrir a hacks dentro de sus archivos CSS.

0

es mejor usar un archivo css diferente para Internet Explorer 6-7 (incluirlos a través de conditional comments), y un hacks para otros navegadores.

0

Una especie de seguimiento es cómo desarrollar el único archivo que funciona.

El mejor enfoque que he visto funcionar es partir de la nada, construirlo lentamente y comprobar el cambio por cambio que sigue siendo compatible en todos los navegadores principales (especialmente los problemáticos).

Cuando trabaje completamente con un navegador y luego diga "tiempo para convertirlo" es cuando realmente comienza el dolor y donde tiene que empezar a piratear.

0

My approach usando una clase PHP para detectar el sistema operativo, el navegador y la versión del navegador. Puede orientar cualquier versión de casi cualquier navegador en cualquier sistema operativo.

Cuestiones relacionadas