我有一大段的文本,分为<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>的行高和高度,我也谷歌了一下,堆栈溢出了,但没有找到任何解决方案。在不改变布局的情况下,这可能吗?


当前回答

所以,上面的人基本上得到了类似的答案,但在这里它非常简洁。适用于Opera, Chrome, Safari和Firefox,最有可能也适用于IE ?

br {
            display: block; /* makes it have a width */
            content: ""; /* clears default height */
            margin-top: 0; /* change this to whatever height you want it */
}

其他回答

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

因此:

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

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

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

下面是真正支持跨浏览器的正确解决方案:

  br {
        line-height: 150%;
     }

据我所知<br>没有高度,它只是强制换行。你得到的是一个文本,除了自动换行之外,还有一些换行符,而不是段落。您可以更改行间距,但这将影响所有行。

我知道这是一个老问题,但对我来说,它实际上是通过使用空白段落和页边距来实现的:

<p class="" style="margin: 4px;"></p>

增加或减少边距大小将增加或减少元素之间的距离,就像边框一样,但可以调整。

最重要的是,它是浏览器兼容的。

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

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

下面是QuirksMode上的一个例子。