IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

bug dans IE11 en utilisant la propriété flex sur un <table>


Sujet :

Positionnement en CSS avec flexbox

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2014
    Messages : 50
    Par défaut bug dans IE11 en utilisant la propriété flex sur un <table>
    Bonjour,
    J'utilise ce code CSS pour rendre responsive l'affichage dans un tableau et faire passer l'affichage de ligne à colonne :
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @media screen and (max-width: 1000px) {
      #_resp {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
       align-content:space-between ;
      }

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <table align="center" cellpadding="0" cellspacing="0" border="0">
      <tr id="_resp">
        <td width="325">
          <table cellpadding="0" cellspacing="0" border="0" >
            <tr>
              <td width="324">
                <img src="img/thematique.jpg" width="325" height="151" alt="thématique">
              </td>
            </tr>
            <tr>
              <td width="324">Ad Lorem...
              </td>
            </tr>
          </table>
        </td>
     
       <td width="325">
          <table cellpadding="0" cellspacing="0" border="0" >
            <tr>
              <td width="324">
                <img src="img/thematique.jpg" width="325" height="151" alt="thématique">
              </td>
            </tr>
            <tr>
              <td width="324">Ad Lorem...
              </td>
            </tr>
          </table>
        </td>
     
       <td width="325">
          <table cellpadding="0" cellspacing="0" border="0" >
            <tr>
              <td width="324">
                <img src="img/thematique.jpg" width="325" height="151" alt="thématique">
              </td>
            </tr>
            <tr>
              <td width="324">Ad Lorem...
              </td>
            </tr>
          </table>
        </td>
    </tr>
    </table>
    Il n'y a aucun bug dans FF, Chrome et Edge mais IE 11 ne l’interprette pas! comment faire ?
    Merci

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 213
    Par défaut
    Bonjour,
    si tu ne veux pas avoir de surprise n'utilise pas d'élément <table>, surtout imbriqué, si tu souhaites mettre en oeuvre display:flex, il y a comme un non-sens !

  3. #3
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2014
    Messages : 50
    Par défaut
    ok je vais recoder le tout avec des div
    je voulais aussi savoir comment conserver l'espacement avec space-between quand je réduis la fenêtre du navigateur pour passer de 3 à 2 colonnes ? (avec les 3 colonnes j'ai bien mon espacement mais il disparaît quand il passe à 2)

    Sinon je laisse tomber align-content et je joue sur les margin ?

    merci bien

  4. #4
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2014
    Messages : 50
    Par défaut
    j'ai trouvé cet exemple très intéressant car il préserve l'espacement entre les div pendant tout le redimensionnement. apparemment c'est qui indique qu'il faut garder une largeur minimale de 200 px avant de passer à la ligne suivante mais je comprends mal à quoi servent 1 et 0 ? car obtient le même résultat si on écritquelqu'un peut m'aider ?

  5. #5
    Membre émérite
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Juin 2012
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 519
    Par défaut
    Le premier chiffre indique la propriété flex-grow. (grandir, grossir)
    La proriété flex:1 indique si l'item à droit de grandir et de prendre la place libre.
    Si l'on met flex:2, cela indique que l'item peut grossir 2 fois plus que les autres éléments.

    La seconde propriété est flex-shrink (maigrir, rétréssir)

    Si il y a 0, c'est que l'item ne peut pas grossir ou rétréssir.
    Ainsi flex: 1 0 200px; indique que l'élément peut grossir, mais pas rétréssir.

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 213
    Par défaut
    Dans l'exemple que tu cites ceux sont les margin-left:10px qui garantissent l'espacement entre tes éléments et aucunement la notion de flex.

    Lorsque tu « raccourci » avec un flex:200px le résultat appliqué est flex:1 1 200px, mais ce « raccourci » reste maladroit.

    Dans ton cas, sur base du code HTML
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <div class="box-flex">
      <div>
        <img src="image_001.jpg" alt="">
        Ad Lorem...
      </div>
      <div>
        <img src="image_002.jpg" alt="">
        Ad Lorem...
      </div>
      <div>
        <img src="image_003.jpg" alt="">
        Ad Lorem...
      </div>    
    </div>
    il me semble que le simple CSS suivant serait acceptable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    .box-flex {
      display: flex;
      flex-wrap: wrap;
      align-content:space-between ;
    }
    .box-flex div {
      width: 324px;
      margin: auto;
    }
    .box-flex img  {
      width: 100%;
      height: auto;
    }

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/06/2014, 16h26
  2. Utiliser les propriétés Maven dans le code
    Par minimarch76 dans le forum Maven
    Réponses: 7
    Dernier message: 17/06/2008, 11h33
  3. utiliser la propriété COLUMN dans QBE
    Par alassanediakite dans le forum Contribuez
    Réponses: 1
    Dernier message: 03/06/2008, 19h11
  4. Réponses: 4
    Dernier message: 22/06/2007, 18h02
  5. Bug lors de l'utilisation d'une fonction dans une macro.
    Par monf29 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/06/2007, 14h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo