In the following lines there are some Unicode space characters wrapped in a span with red border to check them. They are included using their numeric character references.

[ ] hair space U+200A

[ ] thin space U+2009

[ ] non-breaking space U+00A0

[ ] punctuation space U+2008

[ ] en space U+2002

[ ] figure space U+2007

[ ] ideographic space U+3000

[ ] em space U+2003

[ ] six-per-em space U+2006

[ ] four-per-em space U+2005

[ ] three-per-em space U+2004

The same as before, but with the characters directly 'typed' in the source of this page (which is specified as 'charset=utf-8') instead of using their numeric character references.

[ ] hair space U+200A

[ ] thin space U+2009

[ ] non-breaking space U+00A0

[ ] punctuation space U+2008

[ ] en space U+2002

[ ] figure space U+2007

[ ] ideographic space U+3000

[ ] em space U+2003

[ ] six-per-em space U+2006

[ ] four-per-em space U+2005

[ ] three-per-em space U+2004

Now having specified the 'Arial Unicode MS' font family.

[ ] hair space U+200A

[ ] thin space U+2009

[ ] non-breaking space U+00A0

[ ] punctuation space U+2008

[ ] en space U+2002

[ ] figure space U+2007

[ ] ideographic space U+3000

[ ] em space U+2003

[ ] six-per-em space U+2006

[ ] four-per-em space U+2005

[ ] three-per-em space U+2004

Now having specified the 'Lucida Sans Unicode MS' font family.

[ ] hair space U+200A

[ ] thin space U+2009

[ ] non-breaking space U+00A0

[ ] punctuation space U+2008

[ ] en space U+2002

[ ] figure space U+2007

[ ] ideographic space U+3000

[ ] em space U+2003

[ ] six-per-em space U+2006

[ ] four-per-em space U+2005

[ ] three-per-em space U+2004

Now having specified the Code2000 font family.

[ ] hair space U+200A

[ ] thin space U+2009

[ ] non-breaking space U+00A0

[ ] punctuation space U+2008

[ ] en space U+2002

[ ] figure space U+2007

[ ] ideographic space U+3000

[ ] em space U+2003

[ ] six-per-em space U+2006

[ ] four-per-em space U+2005

[ ] three-per-em space U+2004

Now with white-space: pre declared for the spans containing the characters.

[ ] hair space U+200A

[ ] thin space U+2009

[ ] non-breaking space U+00A0

[ ] punctuation space U+2008

[ ] en space U+2002

[ ] figure space U+2007

[ ] ideographic space U+3000

[ ] em space U+2003

[ ] six-per-em space U+2006

[ ] four-per-em space U+2005

[ ] three-per-em space U+2004

With white-space: pre and Arial Unicode.

[ ] hair space U+200A

[ ] thin space U+2009

[ ] non-breaking space U+00A0

[ ] punctuation space U+2008

[ ] en space U+2002

[ ] figure space U+2007

[ ] ideographic space U+3000

[ ] em space U+2003

[ ] six-per-em space U+2006

[ ] four-per-em space U+2005

[ ] three-per-em space U+2004

In all the modern browsers the above works correctly (or better: 'as expected'), with small variations among them. Except in Opera where almost all spaces are converted to a normal space, except when white-space: pre is in effect (last two sets). In IE6 is necessary that an existing font containing the required characters is specified.