Question

Comment afficher une longue chaîne, l'adresse d'un site Web, un mot ou un ensemble de symboles avec la ligne automatique des pauses pour garder une largeur div? Je suppose que wordwrap de toutes sortes. En général, l'ajout d'un espace fonctionne, mais est-il une solution CSS, comme mot-wrap?

Par exemple, il (très désagréablement) chevauche divs, les forces de défilement horizontal, etc. wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

Que puis-je ajouter à la chaîne ci-dessus pour l'adapter parfaitement à quelques lignes dans un div ou dans la fenêtre du navigateur?

Était-ce utile?

La solution

Cette question a été posée ici avant:

Longue histoire courte:

En ce qui concerne les solutions CSS que vous avez des: pour forcer l'overflow: scroll; élément à afficher les barres de défilement et de couper overflow:hidden; juste à côté de tout texte supplémentaire. Il y a et text-overflow:ellipsis; mais ils sont word-wrap: break-word; IE uniquement (est dans le break-word projet de CSS3, cependant, il sera la solution à ce 5 ans à partir de maintenant).

En bout de ligne est que s'il est très important pour vous d'arrêter cela se produise avec enroulant le texte sur la ligne suivante la seule solution raisonnable consiste à injecter &shy; (trait d'union), <wbr> (mot balise de saut) ou &#8203; (espace zéro largeur, même effet que trait d'union moins <=>) dans votre côté serveur de chaîne. Si cela ne vous dérange pas Javascript, cependant, il y a le qui Hyphenator semble être assez solide.

Autres conseils

word-wrap: break-word; est disponible dans IE7 +, FF 3.5 et Webkit activé navigateurs (Safari / Chrome, etc.). Pour gérer IE6 vous devrez également déclarer word-wrap: break-all;

Si 2,0 FF est pas sur votre matrice de navigateur puis en utilisant ces derniers est une solution viable. Malheureusement, il ne pas la césure ligne précédente où le mot est cassé qui est un cauchemar typographique. Je suggère d'utiliser la césure comme suggéré par Paolo qui est discret JavaScript. Le repli pour les utilisateurs non JavaScript activé sera alors le mot rompu sans traits d'union. Je peux vivre avec ça pour le moment. Ce problème sera très probablement dans un surgir CMS, où le concepteur web n'a pas de contrôle sur ce contenu sera inscrit ou lorsque les sauts de ligne-et-doux traits d'union peuvent être mises en œuvre.

J'ai pris un coup d'œil à la W3 spécification où Césure CSS3 est discuté. Malheureusement, il semble qu'il y ait quelques suggestions, mais rien encore concret. Il semble que les éditeurs de navigateurs ne sont pas encore à mettre en œuvre tout soit encore. J'ai vérifié Mozilla et WebKit pour le code proprietory mais il n'y a aucun signe de.

word-break:break-all fonctionne un régal

Il suffit de mentionner ce sur mais probablement plus pertinente à cette question. La meilleure propriété sera prochainement débordement-wrap. et la meilleure valeur si elle est mise en œuvre serait:

* {
   overflow-wrap:hyphenate. 
}

doesen't semblent être pris en charge de quelque façon que pour l'instant au moment de l'écriture sur l'iPhone ou Firefox, et trop-plein-wrap: hyphenate est même pas dans le projet de travail.

dans l'intervalle, j'utiliser:

p {
    word-wrap: break-word;
    -moz-hyphens:auto; 
    -webkit-hyphens:auto; 
    -o-hyphens:auto; 
    hyphens:auto; 
}
display: block;
overflow: hidden;
text-overflow: ellipsis;
width: 200px; // or whatever is best for you

J'utilise le code pour prévenir toutes les chaînes longues urls etc ..

 -ms-word-break: break-all;

/* Be VERY careful with this, breaks normal words wh_erever */
     word-break: break-all;

/* Non standard for webkit */
     word-break: break-word;
-webkit-hyphens: auto;
   -moz-hyphens: auto;
        hyphens: auto;
scroll top