flex-wrap ne fonctionne pas comme prévu dans Safari
Sur la page d'accueil de http://www.shopifyexperte.de/ il y a deux flex-zone modules, l'un sous "Kundenstimmen" et sous "Nouvelles Beiträge...". Les boîtes intérieures sont censés envelopper quand ils descendent en-dessous de 220px et de ne pas pousser au-dessus de 30% de largeur. Cela fonctionne dans le dernier Chrome, FF et Opera (sur Mac), mais dans Safari 8.0.5 (Mac) et n'importe quel navigateur les boîtes de ne jamais former une suite, même si il ya assez de place. Ils ont toujours envelopper, chacun sur une ligne de sa propre.
Le CSS pour le conteneur:
CSS:
.homepage-testimonial-container {
display: flex;
display: -webkit-flex;
-webkit-flex: 1;
flex: 1;
-webkit-flex-direction: row;
flex-direction: row;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-justify-content: space-between;
justify-content: space-between;
-webkit-align-items: flex-start;
align-items: flex-start;
margin-top: 1em;
}
Le CSS pour les cases à l'intérieur du conteneur:
CSS:
.homepage-testimonial {
margin-bottom: 1em;
min-width: 220px;
max-width: 30%;
-webkit-flex: 1 1 auto;
flex: 1 1 auto;
}
Si je désactive -webkit-flex-wrap (effectivement le paramètre nowrap), toutes les cases de la ligne vers le haut en une ligne, mais finira par déborder le récipient lorsque la fenêtre du navigateur devient trop étroit.
Est-ce une sorte de bug dans Safari/Webkit ou suis-je en train de faire quelque chose de mal ici?
Vous devez vous connecter pour publier un commentaire.
Il semble que ce soit un bug dans Safari. Dans un autre domaine, j'ai testé en utilisant le min-width en place de
auto
dans les lignes où vous dites quelque chose comme-webkit-flex: 1 1 auto;
.Cette question a peu d'info: https://stackoverflow.com/a/30792851/756329
Ensemble des éléments d'enfant, comme cela semble fonctionner pour moi
flex:1;
fonctionne sur iOS 10.3.2, mais pas 10.2.2J'ai eu un problème similaire dans Safari (9.1.3) avec le Bootstrap 3 système de grille (par exemple, col-md-4) en combinaison avec flex. Je l'ai résolu par la mise en
margin: 0 -1px;
sur le col éléments etflex-wrap: wrap;
sur l'emballage.Je suis à l'aide de Safari 11.0.1 et le bug persiste. J'utilise Bootstrap 3 combiné avec display: flex sur mon .les éléments de ligne. J'ai ajouté, à la suite de mon css pour cibler les éléments de colonne. Il semble y avoir quelque chose à propos de la largeur des pourcentages dans Safari qui ne sont pas honorés correctement.
display: flex
etflex-wrap: wrap
sur une ligne avec quatre colonnes, Safari n'affiche trois colonnes par ligne au lieu de quatre. Réglage négatif de la marge gauche/droite, comme indiqué ci-dessus il fixe.Réglage
flex-basis: 20em
fonctionne aussi,min-width: 20em
ne pas.C'est en effet un Safari bug. Les détails sont disponibles à l'excellent flexbugs page, mais le citer:
Ainsi, le correctif /solution de contournement - comme suggéré par d'autres réponses ici - est de régler le
flex-basis
explicite de la largeur plutôt queauto
.Je viens de croiser à nouveau cette question et ont utilisé le "flex-flow'. A travaillé comme un charme.