Of course <br/>
is what we all grew up with from our HTML beginnings, but there’s more.
Like… CSS white-space: pre-wrap
:
<div id="box">
Coding is cognitively demanding,
mentally stimulating,
emotionally rewarding,
beauty, unity
power
</div>
#box {
background-color: #e0e0e0;
width: 250px;
font-family: Arial;
white-space: pre-wrap;
}
Without pre-wrap
:
pre-wrap
preserves line breaks and sequences of whitespace in the element’s text.
So the 4 spaces between the words in the first line are shown in the output along with the line break.
Even the space used for text indentation is also shown in the output, adding extra left padding to the container.
JS too
pre-wrap
also acknowledges the \n
character when set from JavaScript; with innerText
or innerHTML
:
const box = document.getElementById('box');
box.innerText =
'Coding is \n logic, art, growth, \n creation';
Without pre-wrap
:
pre
pre
works a lot like pre-wrap
but no more auto wrapping:
For example:
<div id="box">
JavaScript at Coding Beauty
HTML at Coding Beauty
CSS at Coding Beauty
</div>
#box {
white-space: pre;
background-color: #e0e0e0;
width: 250px;
font-family: Arial;
}
If pre
was pre-wrap
in this example:
The behavior with pre
is the same when you set the innerHTML
or innerText
property of the element to a string using JavaScript.
Newlines only
white-space:pre-line
: Ignore extra spaces but show line breaks:
<div id="box">
Coding is growth unity
power beauty
</div>
#box {
background-color: #e0e0e0;
width: 250px;
font-family: Arial;
white-space: pre-line
}
pre-line
-> pre-wrap
:
Like the previous two possible white-space
values, pre-line
works in the same way when you set the innerHTML
or innerText
property of the element to a string using JavaScript.
Every Crazy Thing JavaScript Does
A captivating guide to the subtle caveats and lesser-known parts of JavaScript.