Sobes.tech
Middle

Comment assurez-vous l'affichage correct des pages dans les anciens navigateurs ou ceux limités?

sobes.tech IA

Réponse de l'IA

  • Utilisation de l'amélioration progressive : Je commence par une fonctionnalité de base qui fonctionne dans tous les navigateurs, puis j'ajoute des fonctionnalités plus avancées avec JavaScript et CSS pour les navigateurs modernes.

  • Application de la détection de fonctionnalités : Au lieu de détecter le navigateur via l'user agent, j'utilise modernizr ou mon propre code pour vérifier la prise en charge de propriétés CSS ou d'API spécifiques.

    // Vérification du support de MutationObserver
    if ('MutationObserver' in window) {
      // Utiliser MutationObserver
    } else {
      // Utiliser un fallback (par exemple, un ancien EventListener)
    }
    
  • Polyfills et transpileurs : J'utilise babel pour transpiler le JavaScript moderne (ES6+) vers une norme plus ancienne (ES5), compatible avec les anciens navigateurs. Pour les fonctionnalités manquantes, j'utilise des polyfills (par exemple, core-js). Pour le CSS, j'utilise postcss avec autoprefixer.

  • Fallbacks CSS : Pour les propriétés CSS avancées (comme Grid ou Flexbox), je fournis des alternatives utilisant float ou inline-block.

    /* Grid CSS avec fallback pour les anciens navigateurs */
    .container {
      display: block; /* Fallback */
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
      gap: 20px;
    }
    
  • Réduction de la dépendance à JavaScript : Je m'efforce de réaliser les fonctionnalités critiques uniquement avec HTML et CSS, pour que le site reste fonctionnel même si JS est désactivé.

  • Tests : Je teste régulièrement le site dans différents anciens navigateurs (IE11, anciennes versions d'Edge) avec BrowserStack ou des machines virtuelles locales.

  • Limitations : Je discute avec le client quels navigateurs doivent être entièrement supportés et pour lesquels une fonctionnalité limitée est acceptable. Je définis le seuil minimal de support.

  • Fourniture de ressources alternatives : Pour les images ou vidéos, j'utilise la balise <picture> ou <video> avec différents formats et sources, pour que le navigateur choisisse celui qui lui convient.

    <picture>
      <source srcset="image.webp" type="image/webp">
      <img src="image.jpg" alt="Description de l'image">
    </picture>