90

是否有可能在纯 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>,当必须保持在同一条线上时,我不能这样做。

4

4 回答 4

144

它是这样工作的:

h4 {
    display:inline;
}
h4:after {
    content:"\a";
    white-space: pre;
}

示例:http: //jsfiddle.net/Bb2d7/

诀窍来自这里:https ://stackoverflow.com/a/66000/509752 (有更多解释)

于 2012-06-07T14:44:27.510 回答
8

尝试

h4{ display:block;}

在你的 CSS

http://jsfiddle.net/ZrJP6/

于 2012-06-07T14:30:24.210 回答
6

您可以使用::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>

于 2012-06-07T14:35:43.613 回答
0

我知道我参加聚会迟到了,但这是我的两分钱。

CSS

li h4 {
   break-after: always;
}

li h4::after {
   display: block;
   content: " ";
}
于 2021-12-22T22:35:19.850 回答