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


当前回答

使用< div >

<div>Content 1</div>Content 2

这允许没有任何垂直空间的新行。

这就变成了

<div>内容1</div>内容2

其他回答

你也可以在CSS中使用“block-quote”属性。这样一来,它就不会影响到你的每一行,而是允许你为段落之间的换行符或“块引号”设置参数。

更新: 我接受纠正。"blockquote"实际上是一个HTML属性。你在工作中使用它就像< p >和< /p >一样。然后,您可以在css中设置块引号的参数,如

blockquote { margin-top: 20px }

希望这能有所帮助。它类似于在br上设置参数,并且可能与跨浏览器兼容,也可能不兼容。

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

因此:

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

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

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

我使用这些方法,但我不知道是否跨浏览器

方法一======

br {
    display:none;
}

或 ======方法二======

br {
    display: block;
    margin-bottom: 2px;
    font-size:2px;
    line-height: 2px;
}
br:before {
    display: block;
    margin-top: 2px;
    content: "";
}
br:after {
    content: ".";
    visibility: hidden;
    display: block;
}

或 ======方法三======

br:after { content: "" }
br { content: "" }

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

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

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

下面是QuirksMode上的一个例子。