Können Sie dem: after-Pseudoelement Zeilenumbrüche hinzufügen?


73

Ich möchte a <br />an eine bestimmte Klasse anhängen . Bei Verwendung der Pseudoklasse: after wird einfach <br />als Text angezeigt .

Gibt es eine Möglichkeit, diese Arbeit zu machen?

Es ist intern für IE8, sodass Browserprobleme kein Problem darstellen. Wenn ich mache

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

Ich möchte, dass "brillant" in einer neuen Zeile erscheint.


1
Siehe diese Questiosn: Hinzufügen von HTML-Entitäten mithilfe von CSS-Inhalten Obwohl es auf anderen Antworten basiert, klingt es so, als würde selbst das nicht funktionieren ...
roryf

Antworten:


71

Sie können keine HTML-Tags rendern, aber Sie können den Stil wie folgt festlegen:

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

Die Haupteinstellung hier ist display: block;Dies wird gerendert : nach Inhalt in a DIV. Und dieses Pseudoelement wird von allen neuesten Browsern unterstützt. Einschließlich IE. Wenn Sie dies sagen, sollten Sie sich Ihrer Benutzer und ihrer Browser bewusst sein.


Funktioniert perfekt, danke. Es ist ein internes Softwareprojekt und auf allen Computern wird IE8 ausgeführt, daher macht es mir nichts aus, komplexes CSS zu verwenden :)
NibblyPig

13

Sie können die \AEscape-Sequenz verwenden, die als Zeilenumbruch gerendert wird:

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

Diese Methode wurde in der CCS 2.1-Spezifikation für die contentEigenschaft erwähnt:

Autoren können Zeilenumbrüche in den generierten Inhalt aufnehmen, indem sie die "\A"Escape-Sequenz in eine der Zeichenfolgen nach der 'content' Eigenschaft schreiben . Dieser eingefügte Zeilenumbruch unterliegt weiterhin der 'white-space'Eigenschaft.


1

Es wird schlimmer - das: After Class funktioniert nicht einmal in IE6 (und wahrscheinlich auch in einigen anderen Browsern).

Ich denke, was Sie hier wirklich wollen, ist ein Rand am unteren Rand des Elements, um Abstand zu schaffen.

Einfach

.myElement {
    margin-bottom: 1em;
}

Zur Verdeutlichung bearbeitet - Ich glaube nicht, dass ein Rand das schafft?
NibblyPig

Ich sehe - meine Antwort gilt nur für die erste Überarbeitung der Frage
David Snabel-Caunt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.