<pre> tag in HTML with fixed width

29,272

Solution 1

An exhaustive way of supporting it in almost all browsers:

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+ */
}

I had the same problem not long ago and had found the solution here: http://codingforums.com/showthread.php?t=43293

Solution 2

pre{
    white-space:pre-wrap;
}

..does what you want in Firefox and Chrome - wraps the lines but preserves whitespace. But unfortunately IE doesn't seem to support it (although I haven't looked in IE8 yet).

Edit: IE8 supports it.

Share:
29,272

Related videos on Youtube

Edward Wong Hau Pepelu Tivrusk
Author by

Edward Wong Hau Pepelu Tivrusk

Updated on April 23, 2020

Comments

  • Edward Wong Hau Pepelu Tivrusk
    Edward Wong Hau Pepelu Tivrusk about 4 years

    I'm using the <pre> tag to display preformatted text (including line breaks, spaces and tabs etc.) But large lines without line-breaks are shown in one line and a scroll bar is added.

    I want to limit the width of the <pre> tag (such that large lines are broken up to come to new lines and no scroll is required. Is this possible or is there some other tag that I can use?

    Code is something like:

    $.post("contr.php", q1, function(data) {
        $("#el_text").html("< pre>"+data+"< /pre>");
    });
    
  • crazyscot
    crazyscot over 11 years
    From W3 Schools, white-space is CSS 1 while word-wrap is CSS 3.