Возможно ли в чистом css, то есть без добавления дополнительных тегов html, сделать разрыв строки как <br>
? Мне нужен разрыв строки после <h4>
элемента, но не до него:
HTML
<li>
Text, text, text, text, text. <h4>Sub header</h4>
Text, text, text, text, text.
</li>
CSS
h4 {
display: inline;
}
Я нашел много подобных вопросов, но всегда с ответами типа «использовать дисплей: блок;» , чего я не могу сделать, когда <h4>
должен оставаться на одной линии.
Ответы:
Это работает так:
h4 { display:inline; } h4:after { content:"\a"; white-space: pre; }
Пример: http://jsfiddle.net/Bb2d7/
Уловка происходит отсюда: https://stackoverflow.com/a/66000/509752 (чтобы получить больше объяснений)
источник
\a
означает разрыв строки, символ U + 000A, иwhite-space: pre
указывает браузерам рассматривать его как разрыв строки при рендеринге.white-space
на:after
псевдо-элемента, который содержит только разрыв строки. И это необходимо, потому что в HTML по умолчанию разрыв строки в содержимом элемента эквивалентен пробелу и не вызывает разрыв строки в визуализированном документе.Пытаться
h4{ display:block;}
в вашем css
http://jsfiddle.net/ZrJP6/
источник
margin-bottom
должно привести вас туда.margin-bottom
поместит h4 в ту же строку, что и предыдущий текст?Вы можете использовать
::after
для создания0px
блока -height после<h4>
, который эффективно перемещает все, что находится после символа,<h4>
на следующую строку:h4 { display: inline; } h4::after { content: ""; display: block; }
<ul> <li> Text, text, text, text, text. <h4>Sub header</h4> Text, text, text, text, text. </li> </ul>
источник