Adding HTML entities using CSS content
How do you use the CSS content
property to add html entities?
I have a number of links which I make into a breadcrumb style list by adding an arrow before each.
<div class="breadcrumbs">
<a>One</a>
<a>Two</a>
<a>Three</a>
</div>
Which has the following style applied to it:
.breadcrumbs a:before {
content: '> ';
}
The problem is that when the breadcrumb list gets long and wraps to the next line, the arrow is left on the preceding line. The obvious solution is to change the space into a non-breaking space, but this doesn't work:
.breadcrumbs a:before {
content: '> ';
}
It actually outputs
onto the screen. I've got around this with other strange characters (like ») by pasting the character in directly, but how do you paste a
?
CSS
css-contant
html
html entities
- asked 9 years ago
- B Butts
2Answer
You have to use the escaped unicode :
Like
.breadcrumbs a:before {
content: '>\0000a0';
}
More info on : http://www.evotech.net/blog/2007/04/named-html-entities-in-numeric-order/
- answered 8 years ago
- Sunny Solu
Update: PointedEars mentions that the correct stand in for
in all css situations would be
'\a0 '
implying that the space is a terminator to the hex string and is absorbed by the escaped sequence. He further pointed out this authoritative description which sounds like a good solution to the problem I described and fixed below.
What you need to do is use the escaped unicode. Despite what you've been told \00a0
is not a perfect stand-in for
within CSS; so try:
content:'>\a0 '; /* or */
content:'>\0000a0'; /* because you'll find: */
content:'No\a0 Break'; /* and */
content:'No\0000a0Break'; /* becomes No Break as opposed to below */
Specifically using \0000a0
as
. If you try, as suggested by mathieu and millikin:
content:'No\00a0Break' /* becomes No਋reak */
It takes the B into the hex escaped characters. The same occurs with 0-9a-fA-F.
- answered 8 years ago
- Gul Hafiz
Your Answer