2012-11-13 2 views
2

Je travaille avec l'envoi d'un e-mail au format HTML en utilisant un serveur web, et jusqu'à présent, il a été bon (contenu et tous les écrans joliment), sauf pour l'emballage de mot. Une seule ligne de texte (saisie par l'utilisateur) peut s'allumer indéfiniment et produire une barre de défilement horizontale sur les clients Web de messagerie les plus courants.retour à la ligne sans mots briser

Alors je suis allé faire des recherches. Je mis en œuvre <div style="width: 100%; word-break: break-word;"><!-- Content here --></div> et cela a fonctionné parfaitement bien, à l'exception que il a commencé à couper mes mots. Ce que j'aimerais faire, c'est de les faire passer à la ligne suivante, tout en conservant le mot «enveloppe».

D'autres sources en ligne indiquent que la balise <div> effectue un retour automatique à la ligne, mais dans les clients Web, cela ne fonctionne pas de cette façon. Je suppose que cela pourrait être dû à certaines des coulisses CSS, mais je ne suis pas vraiment allé enquêter.

Est-ce que quelqu'un a une solution/suggestion à mon problème? Je ne voudrais pas faire de formatage côté serveur; Premièrement, je pense que c'est une douleur dans le cul, et deuxièmement, je pense que cela aurait l'air différent à travers différents clients de messagerie Web ... merci!

Répondre

2

Essayez d'ajouter cette propriété supplémentaire:

white-space: pre-line; 
word-wrap: break-word; 

Voir cette référence pour l'explication des valeurs possibles: http://www.w3schools.com/cssref/pr_text_white-space.asp

+3

Cela ne semble pas fonctionner pour moi ... :( – matt

+1

Avez-vous un modèle en ligne quelque part? –

+1

C'est mon code qui m'a mis hors tension ... J'ai converti tous les espaces en ' ' et il est finalement devenu un Enlever cela et en appliquant le style 'white-space: pre-line;' a fait des merveilles, merci !! – matt

2

Il est en effet quelque chose dans les coulisses qui empêche l'emballage normal. Nous aimerions vraiment besoin de voir les coulisses, ou tout au moins dans les scènes, pour analyser la situation, mais dans un cas simple, l'ajout de cette CSS (sur le div) devrait aider:

white-space: normal; 

Il est la valeur initiale , mais vraisemblablement dépassé par quelque chose. Si cela ne fonctionne pas, essayez

white-space: normal !important; 

Évitez word-break: break-word, car il casse vraiment les mots, comme son nom l'indique. Il est destiné à être utilisé avec des systèmes d'écriture qui permettent des pauses n'importe où.

+0

En fait, j'ai besoin que ce soit 'white-space: pre-line;', parce que je dois préserver le l'entrée de l'utilisateur Je n'ai jamais su qu'il y avait une propriété CSS appelée 'white-space', parce que je remplaçais tous mes espaces avec'   's ... Merci! – matt

Questions connexes