D'accord, cela me déroute vraiment. J'ai du contenu à l'intérieur d'un div comme ceci:
<div style="background-color: green; width: 200px; height: 300px;">
Thisisatest.Thisisatest.Thisisatest.Thisisatest.Thisisatest.Thisisatest.
</div>
Cependant, le contenu déborde du DIV (comme prévu) car le «mot» est trop long.
Comment puis-je forcer le navigateur à «casser» le mot lorsque cela est nécessaire pour adapter tout le contenu à l'intérieur?
html
css
line-breaks
Nathan Osman
la source
la source
Réponses:
Utilisationword-wrap:break-word;
Il fonctionne même dans IE6, ce qui est une agréable surprise.word-wrap: break-word
a été remplacé par celuioverflow-wrap: break-word;
qui fonctionne dans tous les navigateurs modernes. IE, étant un navigateur mort, s'appuiera à jamais sur les versions obsolètes et non standardword-wrap
.Les utilisations
word-wrap
actuelles fonctionnent toujours car c'est un alias pouroverflow-wrap
la spécification.la source
table-layout: fixed;
à la tableword-wrap: break-word
n'a pas fonctionné pour moi maisword-break: break-word
comme @rahul l'a suggéré ci-dessous a fonctionné.Je ne suis pas sûr de la compatibilité du navigateur
Vous pouvez également utiliser la
<wbr>
balisela source
Cela pourrait être ajouté à la réponse acceptée pour une solution «multi-navigateur».
Sources:
la source
Je cherchais sur Google le même problème et j'ai affiché ma solution finale ICI . Cela concerne également cette question.
Vous pouvez le faire facilement avec un div en lui donnant le style
word-wrap: break-word
(et vous devrez peut-être également définir sa largeur).Cependant, pour les tables , vous devez également appliquer:
table-layout: fixed
. Cela signifie que les largeurs des colonnes ne sont plus fluides, mais sont définies en fonction des largeurs des colonnes de la première ligne uniquement (ou via les largeurs spécifiées). En savoir plus ici .Exemple de code:
la source
width: 100%;
était le seul moyen pour que cela fonctionne pour moi sur FF et chrome!​
est l'entité HTML d'un caractère unicode appelé espace de largeur nulle (ZWSP) qui est un caractère invisible qui spécifie une opportunité de saut de ligne. De même, l'objectif du tiret est de spécifier une opportunité de saut de ligne dans une limite de mot.la source
​
a une priorité inférieure à un espace blanc (c'est-à-dire s'il y en a un à proximité, la ligne se brisera à la place dans un espace blanc).<wbr/>
équivalent unicode que je cherchaisJ'ai constaté que l'utilisation des éléments suivants fonctionnait sur la plupart des principaux navigateurs (Chrome, IE, Safari iOS / OSX), à l'exception de Firefox (v50.0.2) lors de l'utilisation de Flexbox et de la fiabilité
width: auto
.Remarque: vous devrez peut-être ajouter des préfixes de fournisseur de navigateur si vous n'utilisez pas de préfixe automatique.
Une autre chose à surveiller est que le texte utilisé
pour l'espacement peut provoquer des sauts de ligne au milieu du mot.la source
CSS
word-wrap:break-word;
, testé dans FireFox 3.6.3la source
J'ai résolu mon problème avec le code ci-dessous.
la source
Retirez
white-space: nowrap
, s'il y en a.Mettre en place:
la source
L'espace est conservé par le navigateur. Le texte se terminera si nécessaire et les sauts en ligne
DEMO
la source
De MDN :
Vous pouvez donc utiliser:
Puis-je utiliser ?
la source
Vous devez d'abord identifier la largeur de votre élément. Par exemple:
de sorte que lorsque le texte atteindra la largeur de l'élément, il sera décomposé en lignes.
la source
Comme mentionné dans la réponse de @ davidcondrey, il n'y a pas seulement le ZWSP, mais aussi le SHY
­ ­
qui peut être utilisé en de très longs mots construits (pensez l'allemand ou le néerlandais) qui doivent être cassés à l'endroit où vous le souhaitez. Invisible, mais il donne un trait d'union au moment où il est nécessaire, gardant ainsi le mot connecté et la ligne remplie au maximum.De cette façon, le mot luchthavenpolitieagent pourrait être noté comme
lucht­haven­politie­agent
donnant des parties plus longues que les syllabes du mot.Bien que je ne lise jamais rien de officiel à ce sujet, ces tirets doux parviennent à obtenir une priorité plus élevée dans les navigateurs que les tirets officiels dans les mots simples de la construction ( s'ils ont une extension pour cela).
En pratique, aucun navigateur n'est capable de briser un mot aussi long et construit; sur des écrans plus petits, ce qui entraîne une nouvelle ligne, ou dans certains cas, même une ligne d'un mot (comme lorsque deux de ces mots construits suivent).
FYI: c'est néerlandais pour le policier de l'aéroport
la source
word-break: normal semble préférable d'utiliser que word-break: break-word car break-word casse l'initiale comme EN
la source
Faites ceci:
la source
essayez ceci dans notre style
la source
normal
est lawhite-space
valeur par défaut . Je pense que l'ajouter n'aurait aucun effet sur l'exemple de la question. Veuillez me corriger si je me trompe.