The specifications say that all spaces, tabs, and line breaks are interpreted as a word delimiter. This way, no matter how many spaces, tabs, and line breaks you have, it will only appear as one space.
The one exception is the pre-tag. Displays spaces, line breaks and tabs in the predtega. You can create each tag as a preliminary tag using the white-space: pre rule.
Specifications: http://www.w3.org/TR/html401/struct/text.html#h-9.1
To display line breaks, the browser checks the type of content (inline or block). If it is embedded (strong, em, a, ...), it does not show line breaks. If it is a block (p, table, div, ...), it shows a line break before and after the element.
Again, with css, you can change the type of block (using the display property) and change its appearance.
source share