Can you add line breaks to the :after pseudo element?

CssPseudo Element

Css Problem Overview


I want to append a <br /> to a particular class. Using the :after pseudo class simply displays <br /> as text.

Is there a way to make this work?

It's internal for IE8 so browser issues aren't a problem. If I do

<span class="linebreakclass">cats are</span> brilliant

I want "brilliant" to appear on a new line.

Css Solutions


Solution 1 - Css

You won't be able to render HTML tags but you can set style like this:

.needs-space:after {
    content: " ";
    display: block;
    clear: both; /* if you need to break floating elements */
}

The main setting here is display: block; This will render :after content inside a DIV. And this pseudo element is supported by all latest browsers. Including IE. Saying this you should be aware of your users and their browsers.

Solution 2 - Css

You can use \A escape sequence, which will render as a newline:

.new-line:after {
  white-space: pre-wrap;
  content: "\A";
}

This method was mentioned in the CCS 2.1 Specification for the content property:

> Authors may include newlines in the generated content by writing the > "\A" escape sequence in one of the strings after the 'content' > property. This inserted line break is still subject to the > 'white-space' property.

Solution 3 - Css

It gets worse - the :after class doesn't even work in IE6 (and probably some other browsers too).

I think what you really want here is a margin on the bottom of the element, to provide spacing.

Simply

.myElement {
    margin-bottom: 1em;
}

Solution 4 - Css

You can either add a custom icon from your assets, by doing simply ..

 &:after {
    content: url('~content/icons/drop-down-arrow.png');
  }

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionNibblyPigView Question on Stackoverflow
Solution 1 - CssRobert KoritnikView Answer on Stackoverflow
Solution 2 - CssDmitry SchetnikovichView Answer on Stackoverflow
Solution 3 - CssDavid Snabel-CauntView Answer on Stackoverflow
Solution 4 - CssSmaillnsView Answer on Stackoverflow