Updated: Nov 10, 2009
The word-spacing property is used to modify the
width of certain whitespace characters. Therefore, it modifies the distance
between the words (or images) in an element. In CSS, a word is considered to be a one or more
(non-whitespace) glyphs with whitespace surrounding it. The word-spacing
property does not specify the width of whitespace characters, it only specifies the
amount of space to be added or removed from the default width.
The word-spacing property can be applied to any element. It can
take length values and the keywords normal and inherit.
It is an inherited property. The initial values is normal. A length of 0 is
equivalent to normal. Negative values are allowed; they reduce the
space between the words.
Note: The word-spacing property does not take percentage values
The width of the space character depends on the font family and font size.
The word-spacing property affects each space (U+0020), non-breaking
space (U+00A0), and ideographic space (U+3000) left in the text after the white
space processing rules have been applied. Source: http://www.w3.org/TR/CSS21/text.html#spacing-props
According to the specification, therefore, other white space characters such
as  ,  , and   are not affected by the word-spacing
property. However, Internet Explorer 6 and Internet Explorer 7, modify the
word spacing of these characters also. This is a bug. Firefox 3 and Firefox 3.5
do not modify the width of the non-breaking space character
. This is a bug.
Note: Since the word-spacing property affects the width of
certain whitespace characters, it not only affects the spacing of words, but
also the space between images that are separated by those whitespace characters.
word-spacing with px values
The number of px declared in the word-spacing
declaration is added to the normal width of the space character.
Example 1: <p style="font-family:'Times New Roman';font-size:
35px;word-spacing: 10px">the <span>quick</span> <span>brown</span></p>
In the above example, the default width of the space character is 9px. Therefore, the default space between words is 9px. However, since the word spacing is declared as 10px, 10px is added to the default spacing which results in word spacing of 19px.
Example 2: <p style="font-family:'Times New Roman';font-size:
35px;word-spacing: -20px">the <span>five quick</span> <span>boxing</span>
wizards</p>
In the above example, the word-spacing value is negative. Since
the default width of the space character is 9px, the final word spacing is 9px
-20px = -11px. Therefore, the beginning and ends of words will overlap each
other.
Firefox 3 and Firefox 3.5 do not reduce the word spacing between two inline elements (e.g. spans) to less than zero. This is a bug. Internet Explorer 8 does not reduce the word spacing to less than zero. This is a bug.
word-spacing with em values
When word spacing is declared in em, the em value is
multiplied with the font-size to give the number of pixels that is added to the
width of the space character in the element.
Example 2: <p style="font-family:'Times New Roman';font-size:
35px;word-spacing: 1.5em">the <span>fox</span> <span>on</span></p>
In the above example, the declared em value (1.5em) is multiplied with the font-size to give 52.5px (1.5 * 35). This is added to the width of the space character to give 61.5px which rounds off to 62px. However, Firefox 3 and Firefox 3.5, due to a rounding off error, increase the word spacing to only 61px. Internet Explorer 8 increases the word spacing to 62px. Internet Explorer 6 and Internet Explorer 7 increases the word spacing to only 33px. This is a bug.
word-spacing:normal restores the word spacing to the default
width of the space character. Since word-spacing is an inherited
property, the normal keyword can be used to restore the default
word spacing in an element that has inherited a modified word spacing
declaration.
word-spacing:inherit
word-spacing:inherit is used to override another word-spacing declaration
that has been applied to an element, and to restore the default behavior of
inheriting the parent element's word spacing.
Internet Explorer 6 and Internet Explorer 7 do not support word-spacing:inherit, they ignore it.
Conclusion
For consistent results in all browsers, word-spacing with
em values should be avoided (Internet Explorer 6 and Internet Explorer 7
calculate them incorrectly).
word-spacing:inherit should also be avoided because Internet
Explorer 6 and Internet Explorer 7 do not support it.
word-spacing declarations that result in negative word spacing
should be avoided because they are not supported by Internet Explorer 8. Also,
in Firefox 3 and Firefox 3.5, if an element with negative word spacing contains
child inline elements, the word spacing between them is not reduced to less than
zero. This is a bug.
Using the word-spacing declaration on elements that contain the
character entities  ,  ,  ,
and is not recommended because of bugs in Internet Explorer 6, Internet Explorer 7, Firefox 3 and Firefox
3.5 (as mentioned earlier).
Apart from the exceptions mentioned above, word-spacing declarations in px that result in
positive word spacing are supported in all browsers and is therefore the
recommended way of using the property.




No comments:
Post a Comment