2009-08-24 7 views
1

Si quelqu'un entre un titre/une phrase très long, le texte s'étendra sur la page Web.Insertion d'un caractère dans le corps d'un paragraphe

Existe-t-il un moyen de casser le texte afin qu'il continue à la ligne suivante? L'utilisation du débordement caché masquera le texte.

Je pense que je devrais utiliser l'étiquette wbr.

Devrais-je utiliser l'insert(); méthode pour cela?

à savoir

string myText = "111111111111111111111111111111111111111111111111111111111111111111111111"; 

myText = myText.Insert(80, "<wbr/>"); 

Je ne sais pas comment croix navigateur la balise WBR est aussi!

Répondre

1

Strictement parlant, vous devez utiliser l'espace de largeur nulle (&#8203;) pour cela plutôt que <wbr>. Cependant, Internet Explorer 6 et les versions antérieures sont connues pour ne pas supporter cela (elles montrent une boîte moche). Donc <wbr> est probablement le choix le plus sûr. Sauf ... Internet Explorer 8 en mode standard est connu pour ne pas supporter <wbr>, donc vous avez vous-même une énigme merveilleuse ici.

Vous pouvez lire plus à quirksmode.org. Notez le commentaire de HBoss en ce sens qu'il est difficile de prédire où se casser, sauf si vous utilisez une police à largeur fixe comme Courier. Vous devriez probablement tenir compte de ses conseils et casser plus souvent que tous les 80 caractères. (Et ne me lancez pas sur la combinaison de caractères.)

En ce qui concerne ASP.NET, vous pouvez utiliser la méthode Insert pour cela, mais attention lorsque vous devez en insérer plusieurs: vous '' besoin de faire un peu de tenue de livres (et un StringBuilder serait également conseillé).

1

Vous pouvez utiliser une regex pour trouver des mots entourés d'espaces/caractères spéciaux, et l'entourer d'une div/span ayant différentes propriétés de débordement.

Si vous utilisez <wbr>, assurez-vous d'entourer le mot avec <nobr>.

0

Je ne suis pas sûr que vous pouvez résoudre ce problème en divisant le contenu par des ruptures, car vous n'êtes pas certain que la rupture sera répartie uniformément sur les navigateurs. Normalement, lorsque je vois un contenu qui s'étend trop, il se recoupe simplement sur le reste de la page ou le concepteur définit le débordement de sorte que le contenu peut être défilé. Il pourrait éventuellement y avoir quelques astuces CSS que vous pourriez utiliser, mais je n'en connais pas. Comme alternative, au lieu de simplement insérer un saut de ligne tous les x nombre de caractères, vous pouvez insérer un espace après certains caractères, par exemple, la ponctuation. Cela permettra de s'assurer que le contenu se termine à un moment ou un autre.

Questions connexes