web-dev-qa-db-fra.com

<pré> étiquette dans HTML avec largeur fixe

J'utilise le <pre> Tag Pour afficher le texte préformaté (y compris les pauses de la ligne, les espaces et les onglets, etc.) mais de grandes lignes sans pause-ligne sont affichées en une ligne et une barre de défilement est ajoutée.

Je veux limiter la largeur du <pre> Tag (de telles grandes lignes sont cassées pour venir à de nouvelles lignes et qu'aucun défilement n'est requis. Est-ce possible ou y a-t-il une autre balise que je peux utiliser?

Le code est quelque chose comme:

$.post("contr.php", q1, function(data) {
    $("#el_text").html("< pre>"+data+"< /pre>");
});

Une manière exhaustive de le soutenir dans presque tous les navigateurs:

pre {
    white-space: -moz-pre-wrap; /* Mozilla, supported since 1999 */
    white-space: -pre-wrap; /* Opera */
    white-space: -o-pre-wrap; /* Opera */
    white-space: pre-wrap; /* CSS3 - Text module (Candidate Recommendation) http://www.w3.org/TR/css3-text/#white-space */
    Word-wrap: break-Word; /* IE 5.5+ */
}

J'ai eu le même problème il y a peu de temps et j'avais trouvé la solution ici: http://codingforums.com/showthread.php?t=4329

86
Karim
pre{
    white-space:pre-wrap;
}

..De ce que vous voulez dans Firefox et Chrome - enveloppe les lignes mais préserve WhitSpace. Mais malheureusement IE ne semble pas le soutenir (bien que je n'ai pas pu le supporter 't regardé dans l'IE8 encore).

EDIT: IE8 Soutenez-le .

16
Dan

Si l'espace est attribué à la droite du bloc même après avoir fait ce que Karim a dit, vous avez peut-être été enfermé à l'intérieur.

La balise de table alloue de l'espace pour l'ensemble de la chaîne avant même lorsque le contenu peut être enveloppé par mot, cela conduit à des zones vides à droite de Pre Block

Dans ce cas, remplacez-le avec une autre balise, comme DIV ou paragraphe

0
Jaison