🎨 Design & ThèmesIntermédiaire PS 1.6 PS 1.7 PS 8.x

Résoudre les problèmes d'affichage PrestaShop sur iPhone et iOS

Guide complet pour diagnostiquer et corriger les bugs d'affichage PrestaShop sur iPhone : menu déroulant, zoom, viewport et CSS spécifiques iOS.

En bref : Les problèmes d'affichage PrestaShop sur iPhone sont principalement causés par les spécificités de Safari/WebKit : menus hover incompatibles avec le tactile, zoom automatique sur les formulaires, unité vh incorrecte et préfixes CSS manquants. Ce guide couvre les cinq bugs les plus fréquents avec leurs solutions CSS et JavaScript à jour.

Publié le 21 mars 2026 6 min de lecture Alexandre Carette

Résoudre les problèmes d'affichage PrestaShop sur iPhone et iOS

Safari sur iOS possède un moteur de rendu (WebKit) avec des comportements spécifiques qui provoquent régulièrement des anomalies d'affichage sur les boutiques PrestaShop. Menu déroulant inaccessible, zoom intempestif, éléments qui débordent de l'écran… Ces problèmes sont souvent invisibles sur Android ou en simulation desktop, ce qui les rend particulièrement frustrants à diagnostiquer.

Après plus de dix ans d'intégration PrestaShop, voici les problèmes iOS les plus fréquents et leurs solutions éprouvées.

Diagnostic préalable : tester correctement sur iPhone

Avant toute correction, il est essentiel de reproduire le problème dans des conditions fiables.

Les outils de test recommandés

  • **Safari > Développement > Simulateur iOS** (macOS uniquement) : le plus fiable, utilise le vrai moteur WebKit
  • **Chrome DevTools** en mode responsive : utile pour le dimensionnement, mais ne reproduit pas les bugs spécifiques à Safari/WebKit
  • **BrowserStack ou LambdaTest** : test sur de vrais appareils à distance, indispensable pour les bugs critiques

Attention : Les simulateurs en ligne de type « iPhone simulator » ne reproduisent pas les comportements réels de Safari. Ils utilisent le moteur de votre navigateur desktop avec une simple contrainte de viewport. Ne vous y fiez pas pour du debug iOS.

Activer le debug distant Safari

Pour inspecter directement votre boutique depuis un iPhone physique :

  1. Sur l'iPhone : **Réglages > Safari > Avancé > Inspecteur Web** → Activer
  2. Connectez l'iPhone au Mac via USB
  3. Dans Safari desktop : **Développement > [Nom de l'iPhone] > [URL de la page]**
  4. Cette méthode vous donne accès à la console JavaScript et à l'inspecteur CSS directement sur l'appareil.

    Problème n°1 : le menu déroulant ne fonctionne pas sur iPhone

    C'est le bug le plus fréquemment signalé. Le menu de navigation se déploie au survol (:hover) sur desktop, mais sur un écran tactile, il n'y a pas de survol — uniquement des taps.

    Cause technique

    Les thèmes PrestaShop classiques (notamment ceux basés sur le thème par défaut 1.6) utilisent des événements :hover en CSS ou mouseenter en JavaScript pour afficher les sous-menus. Sur iOS, le premier tap déclenche le :hover, mais le second tap suit le lien — ce qui empêche de naviguer dans les sous-catégories.

    Solution CSS : le menu accessible au tap

    Pour PrestaShop 1.6 et ses thèmes dérivés, remplacez la logique hover par une approche compatible tactile :

    
    /* Désactiver le hover sur les écrans tactiles */
    @media (hover: none) and (pointer: coarse) {
      #block_top_menu ul.menu-content {
        display: none;
      }
    
      #block_top_menu li.sfHoverForce > ul.menu-content {
        display: block;
      }
    }
    

    Solution JavaScript : toggle au tap

    Pour un contrôle plus fin, utilisez un script qui bascule l'affichage au tap :

    
    document.addEventListener('DOMContentLoaded', function () {
      if ('ontouchstart' in window) {
        document.querySelectorAll('#_desktop_top_menu .category').forEach(function (item) {
          var link = item.querySelector('a[data-depth="0"]');
          var submenu = item.querySelector('.popover');
    
          if (link && submenu) {
            link.addEventListener('click', function (e) {
              var isOpen = submenu.classList.contains('shown');
    
              // Fermer tous les autres sous-menus
              document.querySelectorAll('#_desktop_top_menu .popover.shown').forEach(function (el) {
                el.classList.remove('shown');
              });
    
              if (!isOpen) {
                e.preventDefault();
                submenu.classList.add('shown');
              }
            });
          }
        });
      }
    });
    

    Sur PrestaShop 8.x avec le thème Classic

    Le thème Classic de PrestaShop 8.x gère mieux la navigation mobile grâce au menu hamburger. Cependant, si vous utilisez un thème tiers ou une personnalisation du menu, vérifiez que le composant utilise bien la media query @media (hover: none) plutôt que des breakpoints fixes.

    Problème n°2 : zoom automatique sur les champs de formulaire

    iOS zoome automatiquement la page lorsque l'utilisateur tape dans un champ ou

Gratuit & sans engagement — réponse sous 24h

Alexandre Carette

Alexandre Carette

Expert PrestaShop & Architecture E-commerce

Développeur PrestaShop depuis 2014, 193 projets livrés. Je conçois des architectures headless Nuxt + PrestaShop et des outils d'automatisation IA pour les e-commerçants.