The white-space property specifies with the way the browser should handle whitespace.
The space character, the [gs carriage return], the line feed character and the tab character are the whitespace characters that are affected by the white-space property.
The following whitespace characters are not affected by the white-space property: non-breaking space ( ), em space ( ), en space ( ) and thin space ( ).
The white-space property can be applied to any element. It takes any one of the following values: normal, pre, nowrap, pre-wrap, pre-line, and inherit.
The inital value is normal. white-space is an inherited property.
[tab:Normal]
white-space:normal
This is the initial value of the property and therefore specifies the default whitespace handling of the [gs browser].
By default, the browser handles whitespace characters found within an element (whose contents are displayed as text) in this way:
- Single or multiple space characters are displayed as a single space.
- Single or multiple tab characters are displayed as a single space.
- Single or multiple [gs carriage return] characters are displayed as a single space.
- Single or multiple line feed characters are displayed as a single space.
Any combination of the above mentioned characters — space, tab, [gs carriage return], and line feed, are displayed as a single space.
The following whitespace character entities are displayed as many times as they appear in the element: ,  ,   and  . That is, the browser does not reduce multiple instances of these character entities into a single space.
Spaces in the text that would appear at the end and at the beginning of lines are not displayed.
The white-space:normal declaration is used to restore the default whitespace handling in an element when a different white-space declaration was either specified or inherited.
Example 1:
<div style="font-family:'Times New Roman';font-size:35px;white-space:pre">
<p style="white-space:normal">the five boxing wizards jump
quickly the quick
</p>
</div>
[tab:Pre]
white-space:pre
This declaration causes the browser to "preserve" the whitespace in an element and to prevent automatic line wrapping. That is, with this declaration, all the whitespace characters are displayed as many times as they appear in the element and only [gs carriage return] characters, line feed characters, carriage return - line feed pairs and line break tags (<br>
) cause the browser to start new lines.
Note: In Firefox 3, Firefox 3.5, Safari 4, Chrome 3 and Opera 10, with white-space:pre
, every line that is displayed ends with either a carriage returncharacter, a line feed character or a carriage return - line feed pair.
However in Internet Explorer 6, Internet Explorer 7 and Internet Explorer 8, withwhite-space:pre
, if the text in an element starts with a newline character or character sequence, the browser does not display the blank line.
This is a bug.
Example 2:
<p style="
font-family:'Times New Roman';font-size:35px;
white-space:pre">
the five boxing
<span>wizards jump</span>
quickly<br>
over
</p>
white-space:nowrap
This declaration prevents the automatic wrapping of lines. However, line break tags (<br>
) still create new lines. This declaration does not alter the way white space is handled.
Example 3:
<p style="
font-family:'Times New Roman';font-size:35px;
white-space:nowrap">
the quick brown fox jumps over the lazy dog the five boxing wizards jump<br>
quickly
</p>
[tab:Pre-wrap]
white-space:pre-wrap
This declaration causes the browser to "preserve" the whitespace in an element and, unlike white-space:pre
, does not prevent automatic line wrapping.
That is, with this declaration, all the whitespace characters are displayed as many times as they appear in the element, the browser automatically wraps lines, and carriage return characters, line feed characters, carriage return - line feed pairs and line break tags (<br>
) cause the browser to start new lines.
Example 4:
<p style="font-family:'Times New Roman';font-size:35px;
white-space:pre-wrap">
the quick brown fox jumps over the lazy dog the five boxing wizards jump<br> quickly</p>
Note: Internet Explorer 6 and Internet Explorer 7 ignore the white-space:pre-wrap
declaration.
[tab:Pre-line]
white-space:pre-line
This declaration causes the browser to automatically wraps lines, and start new lines with carriage return characters, line feed characters, carriage return - line feed pairs and line break tags (<br>
).
Unlike white-space:pre
however, space characters and tab characters are handled according to the browser's default whitespace handling rules.
Example 5:
<p style="
font-family:'Times New Roman';font-size:35px;
white-space:pre-line">
the quick brown
fox jumps
over the lazy dog
the five boxing wizards
jump<br> quickly</p>
Note: Firefox 3, Internet Explorer 6 and Internet Explorer 7 ignore the white-space:pre-line
declaration.
[tab:Inheritance]
white-space inheritance
white-space
is an inherited property, all descendants of an element inherit its white-space
declaration.
Example 6:
<div style="white-space:pre"><p style="font-family:'Times New Roman';font-size:35px">
the five
boxing <span>wizards jump
quickly</span> the quick</p></div>
[tab:Inherit]
white-space:inherit
This declaration is used to override another white-space
declaration that is applied to an element and to restore the default behavior of inheriting the ancestor elements' white-space
declaration.
Note: Internet Explorer 6 and Internet Explorer 7 ignore white-space:inherit
declarations.
[tab:END]
Concluding Notes
white-space:pre-wrap
and white-space:inherit
must be avoided because Internet Explorer 6 and Internet Explorer 7 ignore these declarations.
white-space:pre-line
must be avoided because Firefox 3, Internet Explorer 6 and Internet Explorer 7 ignore it.
If the text in an element that has the declaration white-space:pre
, starts with a newline character or character sequence, Internet Explorer 8 and below do not display the blank line.
Therefore, elements that have white-space:pre
should not start with a newline character or character sequence.
SOURCE | LINK (Blogspot.com) | LANGUAGE | ENGLISH |