/*
"before" & "after" are pseudo-contents.
They end up *into* the tag they are declared for.
They are just right "before" or "after" the *content* of tag they're in.
Declare their "content" CSS rule to make them visible.
*/
div::before /* <div>|here|Content of tag</div> */
{
content: "|here|";
}
div::after /* <div>Content of tag|here|</div> */
{
content: "|here|";
}
/*
Double-colon should be used: it's the meant pseudo-content operator.
IE8 doesn't support it though: it supports single-colon (meant for pseudo-selectors).
So IE8 support needs the following:
div:before { ... }
div:after { ... }
*/
div::before {
content: "before";
}
div::after {
content: "after";
}
<style>
div::before {
content: "before";
}
div::after {
content: "after";
}
</style>
<div>
before
<!-- Rest of stuff inside the div -->
after
</div>