Aller au contenu

Divi inverser l'ordre des colonnes sur mobile

changer ordre colonnes Divi mobile

Divi : ordre des colonnes sur mobile (affichage responsive). Lorsqu'on crée le design d'un site Web, avec Divi ou n'importe quelle technologie, on peut être amené à créer des alternances dans la mise en page, pour créer un rythme visuel.

Par exemple, des alternances de texte/image image/texte :

  • Rangée 1 - colonne 1 : texte, colonne 2 : image

  • Rangée 2 - colonne 1 : image, colonne 2 : texte

  • Rangée 3 - colonne 1 : texte, colonne 2 : image

  • Rangée 4 - colonne 1 : image, colonne 2 : texte

C'est sympa sur grand écran, mais sur mobile, les colonnes disparaissent, chaque colonne passe en pleine largeur, elles passent les unes en-dessous des autres, et notre alternance n'est plus adéquate :

alternance colonnes inverse Divi

Dans ce tutoriel, nous allons voir comment garder cette alternance de colonnes sur grand écran, et la supprimer sur mobile.

Exemple Divi réel : contenu en alternance, en quinconce

Ce que nous avons sur grand écran (desktop) : du contenu en quinconce

divi colonnes quinconce

Le rendu sur mobile de nos colonnes Divi - en vue téléphone, les colonnes disparaissent, elles passent toutes les unes en-dessous des autres :

divi colonnes ordre mobile

Le problème : l'alternance texte/image, image/texte, texte/image, donne un bon effet sur grand écran, mais apporte de la confusion sur mobile.

Nous voudrions avoir :

  • Grand écran : texte/image, image/texte, texte/image

  • Mobile : image/texte, image/texte, image/texte

Pour ce faire, nous allons utiliser du CSS flexbox avec Divi.

CSS Flexbox Divi pour changer l'ordre des colonnes sur mobile

Ajoutez ce CSS à votre site dans votre thème enfant ou dans Divi > Personnaliseur de thèmes > CSS additionnel

CSS35 lignes
/* ordre colonnes sur mobile */
@media all and (max-width: 980px) {
   /* envelopper la rangée dans une flexbox */
   .custom_row {
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      -webkit-flex-wrap: wrap; /* Safari 6.1+ */
      flex-wrap: wrap;
   }
   /* classes personnalisées qui désigneront l'ordre
   des colonnes dans la ligne de la flexbox */
   .first-on-mobile {
      -webkit-order: 1;
      order: 1;
   }
   .second-on-mobile {
      -webkit-order: 2;
      order: 2;
   }
   .third-on-mobile {
      -webkit-order: 3;
      order: 3;
   }
   .fourth-on-mobile {
      -webkit-order: 4;
      order: 4;
   }
   /* ajoute une marge à la dernière colonne */
   .custom_row:last-child .et_pb_column:last-child {
      margin-bottom: 30px;
   }
}

Ensuite, appliquez les classes CSS suivantes dans les réglages de la rangée. Pour ajouter une classe à une section, rangée ou module Divi, cliquez sur la roue dentée de l'élément :

divi réglages rangee

Dans l'onglet "Avancé", vous trouverez le champ "Classe CSS" de votre rangée, et dans l'onglet contenu, vos colonnes :

divi ordre colonnes mobile responsive
Divi paramètres colonnes rangée
  • First on mobile (class "first-on-mobile") signifie : afficher en premier sur mobile

  • Second on mobile (class "second-on-mobile") signifie : afficher en deuxième sur mobile

  • Third on mobile (class "third-on-mobile") signifie : afficher en troisième sur mobile

  • Fourth on mobile (class "fourth-on-mobile") signifie : afficher en quatrième sur mobile

Sauvegardez la page Divi, quittez le Visual Builder, et voici le résultat :

L'alternance des contenus a bien été supprimée sur affichage mobile, mais reste sur grand écran.

Auteur : Jean-Noël Mathonnet

Commentaires20 commentaires

  1. Badis

    Merci pour ce tuto très clair et précis. J'ai suivi vos conseils et j'ai pu améliorer la présentation de mon site grâce à vous.

    1. Jean-Noël MathonnetAuteur

      Bonjour Badis, merci pour votre retour, content d'avoir pu vous aider.

  2. StartDesign

    Bonjour, merci pour votre tuto. J'ai un petit soucis, j'ai bien suivis la procédure, mais ca ne donne aucun résultat. Sur l'affichage mobile ca ne change rien à l'ordre de mes colonnes... J'ai pourtant bien appliquez les classes CSS...

    1. Jean-Noël MathonnetAuteur

      Bonjour, vous avez bien appliqué la classe custom_row au conteneur ? Il y a peut-être conflit avec votre CSS existant, pouvez-vous essayer dans un projet vierge ?

  3. Alexandre Dennequin

    Bonjour, merci pour le tuto. J'ai un peu le même sauf que je veux afficher 3 ou 4 colonnes sur ordi et 2 sur Mobile. Divi me met tout les uns sous les autres. Merci de votre retour

    1. Jean-Noël MathonnetAuteur

      Bonjour Alexandre, C'est quelque chose de différent dans ce cas, il faut appliquer le code des demi-colonnes sur mobile, la width: 47.25%; (ou votre width) et les margin correspondantes Je note dans ma longue liste de tâches de faire un tuto là-dessus ou l'intégrer dans une formation Vous pouvez aussi me contacter directement pour que je vous aide sur votre site Cordialement

    2. Gérard

      Bonjour, comment puis-je entrer en contact avec vous ?

  4. Rémi

    Bonjour, Merci pour ce tuto, mais dans mes paramêtres de ligne, onglet avancé, j'a n'ai qu'un seul champ pour la class CSS et non un champ par colonne. De ce fait, cela ne fonctionne pas

    1. Jean-Noël MathonnetAuteur

      Bonjour Rémi, Merci pour votre retour, la partie concernée de l'article a été mise à jour pour la dernière version de Divi. Rangée > Contenu > Colonne 1 > Modifier > Avancé > Classe CSS

  5. alain

    Bonjour Jean Merci pour ce code et cette astuce ! ça fonctionne parfaitement pour moi, et c'est très clair !

    1. Jean-Noël MathonnetAuteur

      Bonjour Alain, Merci pour votre retour :-) Pour aller plus loin n'hésitez pas à consulter https://www.ideoforge.com

  6. Sebastien

    Merci, j'avais un trou dans ma memoire ;) tuto idéal au raffraichissement :)

  7. Annabelle

    Bonjour Jean, Merci pour ce tuto, mais chez moi, non seulement ça ne fonctionne pas, mais ça a désactivé le Menu plein écran sur la version mobile. Même en supprimant le code pour les colonnes, ça l'a complètement désactivé, et je n'ai plus accès à aucune page sur le mobile... Je me doute qu'il doit y avoir un conflit avec mon css existant, mais pourquoi ? Et comment revenir à la normale ??? Merci pour votre réponse. Bien cordialement,

    1. Jean-Noël MathonnetAuteur

      Bonjour Annabelle, Ce sont des choses qui arrivent tout le temps lorsqu'on travaille sur des sites Web Si vous avez ajouté du CSS, puis que vous l'avez exactement supprimé sans rien changer d'autres, le site doit revenir à son état précédent Si non, c'est que vous avez changé quelque chose d'autre, ou un problème de mémoire cache, etc. Vous pouvez tout simplement rétablir une sauvegarde du site quand il marchait bien Cordialement

  8. Matthieu Berthod

    Merci pour le tuto ! En effet grâce à un des commentaires j'ai pu résoudre un soucis que j'avais : je n'avais pas mis la classe "custom_row" à la ligne !

    1. Jean-Noël MathonnetAuteur

      Super, content que vous ayez réussi à faire fonctionner cela sur votre site

  9. Alain

    TOP !! Merci mille fois jean !

    1. Jean-Noël MathonnetAuteur

      Bonjour Alain, Ravi que mon article ait pu vous aider

  10. Raynal

    Merci beaucoup pour ces explications on ne peut plus clair. Vous m'enlevez une belle épine du pied ;-) Ca marche parfaitement !

    1. Jean-Noël MathonnetAuteur

      Bonjour Raynal, Content que cet article ait pu vous aider :-) N'hésitez pas à jeter un oeil aux formations WordPress (https://www.ideoforge.com/formation/wordpress/) et Divi (https://www.ideoforge.com/formation/formation-divi-2019/) pour aller encore plus loin

Laisser un commentaire

Lorsque vous achetez via des liens sur ce site, nous pouvons toucher une commission d'affiliation. + d'infos