Ist es in reinem CSS möglich, ohne zusätzliche HTML-Tags hinzuzufügen, einen Zeilenumbruch wie <br>
? Ich möchte den Zeilenumbruch nach dem <h4>
Element, aber nicht vorher:
HTML
<li>
Text, text, text, text, text. <h4>Sub header</h4>
Text, text, text, text, text.
</li>
CSS
h4 {
display: inline;
}
Ich habe viele Fragen wie diese gefunden, aber immer mit Antworten wie "use display: block;" , was ich nicht kann, wenn das <h4>
auf der gleichen Linie bleiben muss.
Antworten:
Es funktioniert so:
Beispiel: http://jsfiddle.net/Bb2d7/
Der Trick kommt von hier: https://stackoverflow.com/a/66000/509752 (um weitere Erklärungen zu erhalten)
quelle
\a
bedeutet Zeilenumbruch, Zeichen U + 000A, undwhite-space: pre
weist die Browser an, ihn beim Rendern als Zeilenumbruch zu behandeln.white-space
das Pseudoelement,:after
das nur den Zeilenumbruch enthält. Dies ist erforderlich, da in HTML ein Zeilenumbruch im Elementinhalt standardmäßig einem Leerzeichen entspricht und keinen Zeilenumbruch im gerenderten Dokument verursacht.Versuchen
in deinem css
http://jsfiddle.net/ZrJP6/
quelle
margin-bottom
sollte Sie dorthin bringen.margin-bottom
wird das h4 in die gleiche Zeile wie der vorhergehende Text gesetzt?Sie können verwenden
::after
, um einen0px
-height-Block nach dem zu erstellen<h4>
, der effektiv alles nach dem<h4>
in die nächste Zeile verschiebt:quelle