Je suis à la recherche d'une manière de croix-navigateur de l'habillage de longues portions de texte qui n'ont pas d'espaces insécables (par exemple, les longues Url) à l'intérieur des divs avec pré-déterminé de largeurs.
Voici quelques solutions que j'ai trouvé sur le web et pourquoi ils ne sont pas de travail pour moi:
- overflow : hidden / auto / faites - j'ai besoin de tout le texte soit visible sans défilement. Le div peut croître verticalement, mais pas horizontalement.
- L'injection de ­ dans la chaîne de caractères via js / côté serveur - ­ est pris en charge par FF3 maintenant, mais le fait de copier et de coller une URL avec un ­ dans le milieu ne fonctionne pas dans Safari. Aussi, à ma connaissance, il n'y a pas une propre méthode de mesure de la largeur du texte à trouver la meilleure chaîne de compensations pour ajouter ces personnages (il y a un hacky, voir point suivant). Un autre problème est que le zoom dans Firefox et Opera peut facilement se casser cette.
- le dumping du texte dans un élément masqué et de mesure offsetWidth liés à l'élément ci-dessus, il requiert l'ajout de caractères dans la chaîne. Aussi, la mesure de la quantité de pauses nécessaires dans un long corps de texte pourrait facilement prendre des milliers de cher DOM insertions (un pour chaque sous-chaîne de longueur), ce qui pourrait effectivement geler le site.
- à l'aide d'une police à espacement fixe - encore une fois, le zoom peut gâcher les calculs de largeur, et le texte ne peut pas être de style librement.
Les choses qui semblent prometteuses, mais ne sont pas tout à fait là:
- word-wrap : break-word - c'est maintenant une partie de CSS3 projet de travail, mais il n'est pas pris en charge par Firefox, Opera ou Safari encore. Ce serait la solution idéale si elle a travaillé sur tous les navigateurs d'aujourd'hui :(
- l'injection <wbr> les balises dans la chaîne via js/ server-side - copier et coller de l'Url fonctionne dans tous les navigateurs, mais je n'ai toujours pas une bonne façon de mesurer où mettre les pauses. Aussi, cette balise HTML invalide.
- l'ajout de pauses après chaque personnage - c'est mieux que des milliers de DOM insertions, mais pas encore idéal (en ajoutant des éléments du DOM d'un document mange de la mémoire et ralentit bas du sélecteur de requêtes, parmi d'autres choses).
Quelqu'un aurait-il plus d'idées sur la façon de s'attaquer à ce problème?