IE10 Flexbox P élément non-emballage
Essentiellement dans IE10 un élément p qui a le texte est plus large que celle du parent lors de la "direction" est une ligne, un débordement, et par la suite de pousser tous les autres frères et sœurs hors du conteneur. L'emballage semble bien fonctionner dans la colonne mode (et vous pouvez voir le même jsfiddle en Chrome et de le voir se comporter comme prévu).
<div id="flex-one">
<p>Some extra long content (for the container) that correctly wraps!</p>
<aside>Content</aside>
</div>
<div id="flex-two">
<p>Some extra long content (for the container) that incorrectly wraps!</p>
<aside>Content</aside>
</div>
div {
width: 250px;
padding: 1em;
background: blue;
display: -webkit-flex;
display: -ms-flexbox;
margin-bottom: 1em;
}
#flex-one {
-webkit-flex-flow: column;
-ms-flex-direction: column;
}
#flex-two {
-webkit-flex-flow: row;
-ms-flex-direction: row;
}
p {
margin: 0;
padding: 0;
background: yellow;
}
aside {
background: red;
}
Toutes les idées sur la façon de corriger ce comportement afin qu'elle ne déborde pas, c'est le conteneur? (sans fournir un fixe avec comme ce est utilisé dans un fluide, mise en page).
Vous devez vous connecter pour publier un commentaire.
Il ne fait aucun sens pour moi, mais l'ajout de
-ms-flex: 0 1 auto
ou-ms-flex: 1 1 auto
à l'alinéa et de côté le corrige dans IE10. Par défaut, les éléments sont censés avoirflex: 0 1 auto
applique lorsqu'ils deviennent flex éléments.http://jsfiddle.net/pvJRK/3/
flex: 0 0 auto;
.Pour moi, j'avais besoin de faire ça avant qu'il ne commence à travailler pour moi:
(à l'aide de classes pour plus de clarté et de ne pas y compris les préfixes pour des raisons de concision)
HTML:
CSS:
Avis que vous devez définir naturellement inline éléments d'enfant à quelque chose d'autre que dans la ligne (principalement
display:block
oudisplay:inline-block
) pour la correction du travail.Merci des réponses précédentes pour m'avoir fait l'essentiel du chemin il y a bien 🙂
Mise à jour:
La technique ci-dessus ne fonctionne pas si flex-direction est définie pour la colonne.
Ma recommandation pour lorsque flex-direction est définie pour la colonne est d'utiliser un min-width media query pour attribuer un max-width sur le bureau.
display: block
etmax-width: 100%
sur l'élément enfant il a arrêté le texte s'affiche sur une seule ligne. Merci de poster +1.Accepté la réponse n'a pas de travail pour moi.
Mon problème (http://jsfiddle.net/Hoffmeyer/xmjs1rmq/) a été résolu comme décrit dans flexbugs https://github.com/philipwalton/flexbugs#2-column-flex-items-set-to-align-itemscenter-overflow-their-container
Ensemble
Ajoutant
flex-shrink: 1
pour le parent des éléments qui ont besoin d'emballage a corrigé cela pour moi dans IE10.Remarque:
flex: 1 1 auto
(ou-ms-flex
) est un raccourci pour:Dans ce cas, il est expressément
flex-shrink
qui va résoudre le problème. Cette propriété doit être1
par défaut, donc je suppose que c'est un bug avec le IE10 mise en œuvre de flex zone et par la définition explicite de sa valeur, il corrige le bug.ce tableau montrent le défaut flex dire dans IE 10, flex-rétrécir par défaut dans IE10 est 0;
donc, si le code est:
mais le span est pas envelopper dans IE10, de sorte que le code nécessaire à l'être: