我有一大段的文本,分为<br>的子段落:

<p>
  Blah blah blah.
  <br/>
  Blah blah blah. Blah blah blah. Blah blah blah.
  <br/>
  Blah blah blah.
</p>

我想扩大这些分段之间的间隔,比如有两个<br>之类的。我知道这样做的正确方法是使用<p></p>,但现在我不能改变这个布局,所以我正在寻找css的解决方案。

我试着用display: block设置<br>的行高和高度,我也谷歌了一下,堆栈溢出了,但没有找到任何解决方案。在不改变布局的情况下,这可能吗?


当前回答

我以前没有尝试过:before/:after CSS2伪元素,主要是因为它只在IE8中被支持(这涉及到IE浏览器)。这可能是唯一可能的CSS解决方案:

br:before {
    display: block;
    margin-top: 10px;
    content: "";
}

下面是QuirksMode上的一个例子。

其他回答

对我来说有用的是在段落标签之间添加这个内联…但这并不是最好的解决方案。

<br style="line-height:32px">

--------编辑---------

我在PC/Mac上遇到了问题…它赋予文本新的行高,但不做换行…你可能想自己做一些检查。对不起!

另一种方法是使用人力资源。但是,狡猾的是,让它隐形。

因此:

<hr style="height:30pt; visibility:hidden;" />

使用HR来模拟一个更干净的BR中断:Btw适用于所有浏览器!!

{ height:2px; visibility:hidden; margin-bottom:-1px; }

我必须开发一种解决方案,将HTML转换为PDF,并在表格单元格中垂直中心放置文本,但除了输入普通的<br>之外,没有任何工作

因此,跳出框框,我通过调整字体大小(以pt为单位)改变了垂直大小。

<font style="font-size: 4pt"><br></font>

如果有人已经说过了,我很抱歉,但简单的解决方法是玩转你的“行高”。如果你在使用换行符时占用了太多的空间,这只是因为你把行高设置得太高了。你可以在CSS中纠正这个错误(但知道这会影响所有使用该属性的东西),或者你可以使用内联样式来覆盖CSS。

而不是

<br>,<br/>,<hr> or <span></span> and trying different CSS properties to these tag.

我做了,我把段落放在一个div中,并给它行高:2px

# html

<div class="smallerlineHeight">
   <p>Line1</p>
   <p>Line2</p>
</div>

#css

.smallerlineHeight {
    p {
        line-height: 2px;
    }
}