Essayez ceci, je pense que cela fonctionnera pour quelque chose comme "AAAAAAAAAAAAAAAAAAAAAARRRRRRRRRRRRRRRRRRRRRRGGGGGGGGGGGGGGGGGG" produira
AARRRRRRRRRRRRRRRRRRRR
RRGGGGGGGGGGGGGGGGGGGG
G
J'ai pris mon exemple sur quelques sites Web différents sur Google. J'ai testé cela sur ff 5.0, IE 8.0 et Chrome 10.
.wrapword {
white-space: -moz-pre-wrap !important;
white-space: -webkit-pre-wrap;
white-space: -pre-wrap;
white-space: -o-pre-wrap;
white-space: pre-wrap;
word-wrap: break-word;
word-break: break-all;
white-space: normal;
}
<table style="table-layout:fixed; width:400px">
<tr>
<td class="wrapword">
</td>
</tr>
</table>
word-break: break-word;
Utilisez CSS3
word-wrap: break-word;
. Fonctionne également dans les navigateurs basés sur WebKit (Safari, Chrome).Mise à jour : j'ai oublié, l'élément en question doit cependant être soit implicitement soit explicitement positionné comme élément fixe ou affiché comme élément de bloc. Pour les cellules de tableau (
td
), utilisezdisplay: inline-block;
.la source
display: inline-block;
.Voici une version avancée de ce qu'OP a demandé.
Parfois, ce qui se passe, c'est que notre client veut que nous donnions «-» après un saut de mot à la fin de la ligne.
Comme
pause pour
Ainsi, il existe une nouvelle propriété CSS si elle est prise en charge, généralement prise en charge dans les derniers navigateurs.
.dont-break-out { /* These are technically the same, but use both */ overflow-wrap: break-word; word-wrap: break-word; -ms-word-break: break-all; /* This is the dangerous one in WebKit, as it breaks things wherever */ word-break: break-all; /* Instead use this non-standard one: */ word-break: break-word; /* Adds a hyphen where the word breaks, if supported (No Blink) */ -ms-hyphens: auto; -moz-hyphens: auto; -webkit-hyphens: auto; hyphens: auto; }
J'utilise celui-ci.
J'espère que quelqu'un aura une demande comme celle-ci.
la source
Pour une mise en page automatique du tableau, essayez de styliser le td concerné en combinant les attributs max-width et word-wrap.
Par exemple:
<td style="max-width:175px; word-wrap:break-word;"> ... </td>
Testé dans Firefox 32, Chrome 37 et IE11.
la source
max-width
et pas avecwidth
. Néanmoins, la meilleure solution pour moi, car elle ne rompt pas les mots à des points arbitraires.Vous pouvez injecter manuellement des espaces de largeur nulle (& # 8203;) pour créer des points de rupture.
la source
<wbr>
[pour "word break"]. Voici le support du navigateur pour cela et la​
solution: quirksmode.org/oddsandends/wbr.htmlDéfinissez une largeur de colonne pour la
td
balise.la source
Je pense que c'est un problème de longue date dans Firefox, qui renvoie à Mozilla et Netscape. Je parie que vous rencontrez un problème avec l'affichage des URL longues. Je pense que c'est un problème avec le moteur de rendu plutôt que quelque chose que vous pouvez résoudre avec CSS, sans quelques hacks horribles.
Cela a du sens de changer la conception.
Cela semblait cependant encourageant: http://hacks.mozilla.org/2009/06/word-wrap/
la source
J'utilise Angular pour mon projet et j'ai réussi à résoudre ce problème avec un simple filtre:
Modèle:
<td>{{string | wordBreak}}</td>
Filtre:
app.filter('wordBreak', function() { return function(string) { return string.replace(/(.{1})/g, '$1'); } })
Vous ne pouvez pas le voir, mais après
$1
il y a un espace invisible (merci @kingjeffrey pour le conseil), qui a permis les sauts de mots pour les cellules du tableau.la source
Une manière légèrement hackeuse de faire cela est de traiter le texte pour ajouter un espace entre chaque lettre. Remplacez les espaces par
Ensuite, utilisez l'attribut css d'espacement des lettres pour réduire les espaces.Je sais, c'est un hack ... mais si RIEN d'autre ne fonctionne, il devrait s'enrouler sans problème.
la source