Comment empêcher le retour à la ligne d'un élément flexbox? Est-ce même possible?
J'essaie de créer une grille à deux colonnes avec flexbox avec le balisage suivant:
<div class="flex-container">
<div class="no-wrap">this should not wrap</div>
<div class="can-wrap">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Totam debitis consequuntur incidunt neque vel in blanditiis id optio distinctio culpa rem voluptatibus quas architecto ratione assumenda omnis laboriosam? Earum esse.</div>
</div>
L'élément .no-wrap
Ne doit être aussi large que "nécessaire" de sorte que tout le texte à l'intérieur ne passe pas à une deuxième ligne. L'élément .can-wrap
Occupera l'espace restant et se terminera si nécessaire.
J'utilise ce CSS (avec prefrix gratuit):
.flex-container{
display:flex;
}
.no-wrap{
flex-basis:initial;
}
Je pensais que flex-basis:initial
Empêcherait l'élément de boucler les lignes - https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis
Voici un codepen: http://codepen.io/jshawl/pen/bknAc
Je sais que je peux fixer la largeur de l'élément .no-wrap
, Mais comment puis-je le rendre suffisamment large pour empêcher le retour à la ligne?
L'équivalent flottant de l'élément .no-wrap
Serait:
.no-wrap{
display:block;
float:left; /* be as wide as need be! */
}
La propriété que vous recherchez est flex-shrink, pas flex-based.
.no-wrap{
flex-shrink: 0;
}
Notez cependant qu'IE10 n'est pas répertorié comme prenant en charge cette propriété (car elle n'existait pas dans la spécification au moment où ils ont ajouté la Flexbox). Vous pouvez utiliser la flex propriété à la place.
.no-wrap{
flex: 0 0 auto;
}