Je veux envelopper du texte qui est ajouté à un <td>
élément. J'ai essayé avec style="word-wrap: break-word;" width="15%"
. Mais ce n'est pas envelopper le texte. Est-il obligatoire de lui donner une largeur de 100%? J'ai d'autres commandes à afficher, donc seulement 15% de largeur est disponible.
html
css
html-table
word-wrap
zool
la source
la source
Réponses:
Pour envelopper du texte TD
Premier style de table
puis réglez le style TD
la source
white-space: normal
le style td pour que l'emballage fonctionne (au lieu duword-wrap:break-word
)white-space:normal;
white-space: pre-wrap
si vous avez besoin de préserver les espaces blancs.Les tableaux HTML prennent en charge un style css «table-layout: fixed» qui empêche l'agent utilisateur d'adapter les largeurs de colonne à leur contenu. Vous voudrez peut-être l'utiliser.
la source
Je crois que vous avez rencontré le piège 22 des tableaux. Les tableaux sont parfaits pour envelopper le contenu dans une structure tabulaire et ils font un excellent travail "d'étirement" pour répondre aux besoins du contenu qu'ils contiennent.
Par défaut, les cellules du tableau s'étirent pour s'adapter au contenu ... ainsi votre texte ne fait que l'élargir.
Il y a quelques solutions.
1.) Vous pouvez essayer de définir une largeur maximale sur le TD.
2.) Vous pouvez essayer de placer votre texte dans un élément d'habillage (par exemple, une étendue) et y définir des contraintes.
Sachez cependant que les anciennes versions d'IE ne prennent pas en charge la largeur min / max.
Étant donné que IE ne prend pas en charge nativement max-width, vous devrez ajouter un hack si vous voulez le forcer. Il y a plusieurs façons d'ajouter un hack, c'est juste une.
Au chargement de la page, pour IE6 uniquement, obtenez la largeur rendue du tableau (en pixels), puis obtenez 15% de celle-ci et appliquez-la comme largeur au premier TD de cette colonne (ou TH si vous avez des en-têtes) à nouveau, en pixels .
la source
table-layout:fixed
résoudra le problème de la cellule en expansion, mais en créera une nouvelle. IE masquera par défaut le débordement mais Mozilla le rendra en dehors de la boîte.Une autre solution serait d'utiliser:
overflow:hidden;width:?px
la source
Crédits à http://www.blakems.com/archives/000077.html
la source
Cela a fonctionné pour moi avec certains frameworks CSS (Material Design Lite [MDL]).
la source
l'utiliser
word-break
peut être utilisé sans styletable
pourtable-layout: fixed
la source
Cela fonctionne vraiment bien:
Vous pouvez utiliser la même largeur pour tous vos
<div
, ou ajuster la largeur dans chaque cas pour couper votre texte où vous le souhaitez.De cette façon, vous n'avez pas à vous tromper avec des largeurs de table fixes ou des css complexes.
la source
J'ai eu certains de mes
td
s avec:Cela a résolu le problème pour moi:
la source
Pour que la largeur de la cellule soit exactement la même que le mot le plus long du texte, définissez simplement la largeur de la cellule sur
1px
c'est à dire
C'est expérimental et j'en suis venu à le savoir en faisant des essais et des erreurs
Violon en direct: http://jsfiddle.net/harshjv/5e2oLL8L/2/
la source
Il est possible que cela fonctionne, mais cela pourrait s'avérer un peu gênant à un moment donné dans le futur (sinon immédiatement).
La raison d'être de la
span
est que, comme l'ont souligné d'autres, a<td>
se développera généralement pour s'adapter au contenu, alors que a<span>
peut être donné - et devrait conserver - une largeur définie; leoverflow: hidden
est destiné à masquer, mais ne pourrait pas, ce qui causerait autrement<td>
expansion du.Je recommanderais d'utiliser la
title
propriété de la durée pour afficher le texte présent (ou découpé) dans la cellule visuelle, afin que le texte soit toujours disponible (et si vous ne voulez pas / avez besoin que les gens le voient, alors pourquoi l'avoir en premier lieu, je suppose ...).De plus, si vous définissez une largeur pour que
td {...}
le td s'agrandisse (ou se contracte potentiellement, mais j'en doute) pour remplir sa largeur implicite (comme je le vois cela semble êtretable-width/number-of-cells
), une largeur de table spécifiée ne semble pas créer le même problème.L'inconvénient est un balisage supplémentaire utilisé pour la présentation.
la source
En fait, l'habillage du texte se produit automatiquement dans les tableaux. La maladresse que les gens commettent lors des tests est de supposer hypothétiquement une longue chaîne comme "ggggggggggggggggggggggggggggggggggggggggggggggg" et se plaindre qu'elle ne s'enroule pas. Pratiquement, il n'y a pas de mot en anglais qui soit aussi long et même s'il y en a, il y a une faible chance qu'il soit utilisé à l'intérieur
<td>
.Essayez de tester avec des phrases comme «La contre-position est superstitieuse dans des circonstances prédéterminées».
la source
Appliquez des classes à vos TD, appliquez les largeurs appropriées (n'oubliez pas de laisser l'une d'elles sans largeur pour qu'elle prenne le reste de la largeur), puis appliquez les styles appropriés. Copiez et collez le code ci-dessous dans un éditeur et affichez-le dans un navigateur pour le voir fonctionner.
la source
la source