Maison >interface Web >tutoriel CSS >Pourquoi « text-overflow » ne fonctionne-t-il pas avec Flexbox et comment puis-je y remédier ?

Pourquoi « text-overflow » ne fonctionne-t-il pas avec Flexbox et comment puis-je y remédier ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-15 03:19:12605parcourir

Why Doesn't `text-overflow` Work with Flexbox, and How Can I Fix It?

Pourquoi le dépassement de texte ne fonctionne-t-il pas avec Flex Display ?

En CSS, la propriété text-overflow est utilisée pour tronquer le texte lorsqu'il dépasse la largeur disponible de son conteneur. Cependant, lorsqu'il est utilisé avec display: flex, il peut ne pas fonctionner comme prévu.

Considérez le code suivant :

.flex-container {
  display: flex;
  text-overflow: ellipsis;
  overflow: hidden;
  text-align: left;
}
<h1>Flexible Boxes</h1>
<div class="flex-container">

Dans cet exemple, le flex-container est un conteneur flexbox, et le texte dans son div enfant devrait être tronqué. Cependant, vous pouvez rencontrer le résultat suivant :

Output: ThisIsASamp  
Expected: ThisIsASam...

Si vous supprimez la propriété display: flex, la troncature du texte fonctionne comme prévu. Alors, quel est le problème ?

Le problème réside dans la manière dont display: flex répartit l'espace au sein du conteneur. Sans flexion, le texte est compressé dans la largeur disponible et tronqué en conséquence. Cependant, lorsque flex est appliqué, l'élément enfant (le div) devient un élément flex et hérite des propriétés flexbox du conteneur.

Pour résoudre ce problème, vous devez styliser explicitement l'élément enfant pour tronquer son texte. Une façon d'y parvenir consiste à créer une classe distincte pour les enfants flex et à appliquer les styles appropriés :

.flex-child {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

En appliquant ces styles à l'élément enfant, vous vous assurez qu'il enveloppe son texte et le tronque lorsque nécessaire, même dans un conteneur flexbox.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn