¿Cuál es la mejor manera de desarrollar una aplicación web compatible con IE7?

En primer lugar, depende de la fidelidad de la experiencia IE7 esperada.
No deberías tratar de ofrecer experiencias similares a CSS3 a IE7. Olvídate de las sombras paralelas, los radios de los bordes y los gradientes. Comience ofreciendo una experiencia atenuada para los usuarios de IE7. Sí, todo será cuadrado y cuadrado. Sí, se verá diferente a la aplicación principal, por ejemplo, en Chrome, pero no tendrá el tiempo ni los recursos para que se vea brillante en un navegador de décadas.
Eche un vistazo a la definición de soporte de navegador calificado de Yahoo. Básicamente, trataría a IE7 como un navegador de grado C, mientras que la mayoría de los otros navegadores disfrutarán de soporte de grado A (porque son navegadores que cumplen con los estándares)

En segundo lugar, depende de cómo haya escrito su aplicación web existente.
Si está utilizando CSS como el repositorio central para todos los estilos de aplicaciones, entonces su trabajo será mucho más fácil.
Tú podrías:

  • manipule el CSS actual, agregue propiedades que se degraden con gracia, ajuste los selectores y use propiedades amigables de IE7 para diseños, o …
  • agregue una hoja de estilo condicional o use selectores basados ​​en Modernizr en su CSS existente (como sugiere Michel Pigassou)

Si su CSS es modular, la corrección de los defectos de IE7 generalmente se realiza en unos pocos lugares. IE7 no entiende ciertos selectores y tiene dificultades con algunas propiedades. Identificar estos selectores de problemas y propiedades es bastante fácil cuando sabes qué buscar. (Consulte Selectores CSS y Pseudo Selectores y compatibilidad con el navegador para la compatibilidad del selector)
La mayoría de los problemas que enfrentará con IE7 es con el diseño y la representación del modelo de caja. Propiedades como display: bloque en línea; algunos flotadores, posición: fija y, por supuesto, el uso de márgenes, anchos y relleno.

Si su JavaScript es modular, utilizando jQuery u otras bibliotecas similares para navegadores cruzados, entonces su trabajo también será más fácil.

Hazte la prueba
Tendría que comenzar a abordar los errores que afectan a IE7 utilizando el navegador en sí. No use los servicios web para probar páginas individuales; en lugar de eso, instale una VM usando VirtualBox y haga que ejecute IE7 en Windows XP en la VM. Carga la instancia y golpea tu aplicación. Active todas las notificaciones de error de script e instale la Barra de herramientas del desarrollador.

Alternativamente, pruebe Google ChromeFrame .
ChromeFrame no requiere privilegios de administrador para la instalación, por lo que agregar un mensaje de advertencia en la parte superior de la página que indique a los usuarios de IE7 que instalen ChromeFrame podría ser una buena manera de avanzar.

Puede usar Javascript que permite la portabilidad para versiones antiguas de IE.
Consulte https://github.com/Modernizr/Mod … para obtener una lista de los componentes que puede usar.

También Modernizr puede ayudarlo a detectar qué funciones son compatibles con un navegador o no.

Wow, esta es una elección difícil.

La codificación para IE7 implica hacks de código desordenados (difíciles de mantener) o funciones limitadas para el resto de sus usuarios …

De todos modos, tomas el problema, será difícil.

Decidimos en mi empresa simplemente prohibir el acceso a los usuarios de IE7 después de habernos dado cuenta de que desarrollarlo habría significado grandes esfuerzos para obtener resultados engañosos al final.

Depende de la complejidad de su aplicación y de la dependencia de Javascript.

si DEBE permitir a los usuarios de IE7 y su aplicación es lo suficientemente simple, tal vez tener una versión separada es la mejor manera de hacerlo.

La gente lucha para desarrollar sitios web compatibles con IE y le preocupa la aplicación web.

Consejos honestos, sin bromas, sin ofender: deberías dejar esta idea.