如何改变一个<br>的高度?

n13*_*313 250 html css

我有一段很大的文字,分为以下的分段<br>:

<p>
  Blah blah blah.
  <br/>
  Blah blah blah. Blah blah blah. Blah blah blah.
  <br/>
  Blah blah blah.
</p>
Run Code Online (Sandbox Code Playgroud)

我想扩大这些分段之间的差距,就像有两个<br>或类似的东西.我知道正确的方法是使用<p></p>,但是现在我无法改变这种布局,所以我正在寻找仅限CSS的解决方案.

我试过设置<br>line-heightheightdisplay: block,我也一派,堆栈溢出-ED简单,但没有找到任何解决方案.这是否可以在不改变布局的情况下实现?

Dur*_*oth 262

CSS:

br {
   display: block;
   margin: 10px 0;
}
Run Code Online (Sandbox Code Playgroud)

解决方案可能不是跨浏览器兼容的,但它至少是这样的.还要考虑设置line-height:

line-height:22px;
Run Code Online (Sandbox Code Playgroud)

对于Google Chrome,请考虑设置content:

content: " ";
Run Code Online (Sandbox Code Playgroud)

除此之外,我认为你坚持使用JavaScript解决方案.

  • 这不适用于:IE7,Opera10,Chrome2.在Firefox中,它创建了双倍大小的边距.你需要指定`margin-top:10px;` (29认同)
  • 为该样式添加`content:""属性,它在Chrome中运行良好 (8认同)
  • 此解决方案适用于Firefox.对于基于webkit的浏览器,您可以添加`line-height`.最后它就像`br {display:block; 边距:10px的; 行高:的22px; }`. (8认同)
  • 伙计们,它也不适用于IE5!^ _ ^ (5认同)
  • @awe:对于不希望使用双倍尺寸的用户,更好的解决方案是'margin:10px 0 0'。 (2认同)
  • 对我不起作用......我也试过@awe的代码`margin-top: 10px;`,仍然没有用...... (2认同)

htm*_*rum 62

以下是实际具有跨浏览器支持的正确解决方案:

  br {
        line-height: 150%;
     }
Run Code Online (Sandbox Code Playgroud)

  • 这适用于增加换行符的高度,但不能_decreasing_它. (24认同)
  • 目前无法在Chrome中使用(46.0.2490.80) (6认同)
  • 不幸的是,不再在 Chrome v.76 中工作。对于 Edge 和 IE,您还需要添加vertical-align:top。我在这里发布了一个解决方案:/sf/answers/2077205581/ (5认同)
  • 据我所知,不是 IE7。 (2认同)
  • @htmldrum如果您没有机会更改HTML,而只有CSS,那么效果很好。谢谢!应该对此表示赞成,并认为这是正确的答案。我认为。 (2认同)

小智 43

因此,上面的窥视基本上有类似的答案,但在这里它是非常简洁的.适用于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 */
}
Run Code Online (Sandbox Code Playgroud)

  • 这个.相对于所述问题,这是正确的.它也是页面上唯一真正完成我需要它做的事情的答案. (3认同)
  • 在我修改内容之前,其他答案都不适合我。这是正确的答案,国际海事组织。 (2认同)
  • 无法在 Safari 上运行 (2认同)

小智 39

另一种方法是使用HR.但是,这是狡猾的部分,让它看不见.

从而:

<hr style="height:30pt; visibility:hidden;" />
Run Code Online (Sandbox Code Playgroud)

使用HR模拟清洁BR断裂:Btw适用于所有浏览器!

{ height:2px; visibility:hidden; margin-bottom:-1px; }
Run Code Online (Sandbox Code Playgroud)

  • 那是HTML标签的可怕滥用,最好使用带有边距的`<p> </ p>`然后销毁`<hr />` (33认同)
  • 这个技巧很好,但要获得更准确的结果,您必须使用 margin: 0 和 border: 0。 (2认同)

Mic*_*rdt 25

据我所知,<br>具有的高度,它只是强制断线.你所拥有的是一个带有一些换行符的文本,除了自动换行符,而不是子段.您可以更改行间距,但这会影响所有行.

  • 看来真的是没有办法了。我什至尝试使用 :before 和 :after 属性,但是... :( (2认同)
  • 我知道这已经很老了,但是@Isaac Minogue 有一个有效的方法来做到这一点。修改“content”属性就可以了。 (2认同)

小智 21

我刚遇到这个问题,我用它来解决它

<div style="line-height:150%;">
    <br>
</div>
Run Code Online (Sandbox Code Playgroud)


Sum*_*ius 13

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

<p class="" style="margin: 4px;"></p>
Run Code Online (Sandbox Code Playgroud)

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

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


yod*_*oda 11

您可以在该<p>元素上应用行高,因此行变大.

  • 是的,当然,但这不是我想要的. (4认同)

Fil*_*vić 7

我之前没有尝试过:before/ :afterCSS2伪元素,主要是因为它只在IE8中支持(这与IE浏览器有关).这可能是唯一可能的CSS解决方案:

br:before {
    display: block;
    margin-top: 10px;
    content: "";
}
Run Code Online (Sandbox Code Playgroud)

下面是一个例子怪异模式.


kei*_*phw 7

有趣的是,如果 break 标签以完整形式编写如下:

<br></br>
Run Code Online (Sandbox Code Playgroud)

然后 CSS line-height:145% 有效。如果 break 标签写成:

<br> or 
<br/> 
Run Code Online (Sandbox Code Playgroud)

那么它不起作用,至少在 Chrome、IE 和 firefox 中是这样。奇怪的!


Dav*_*ton 7

2019 年 9 月 13 日更新:

我用<br class=big>做一个超大的换行符,当我需要一个。直到今天,我的风格是这样的:

br.big {line-height:190%;vertical-align:top}
Run Code Online (Sandbox Code Playgroud)

vertical-align:top只有 IE 和 Edge 需要。)

这适用于我尝试过的所有主要浏览器:Chrome、Firefox、Opera、Brave、PaleMoon、Edge 和 IE11。

但是,它最近在基于 Chrome 的浏览器中停止工作:我的“大”换行符变成了正常大小的换行符。

(我不知道他们什么时候破坏了它。截至 2019 年 9 月 12 日,它仍然可以在我过时的 Chromium Portable 55.0.2883.11 中使用,但在 Opera 63.0.3368.71 和 Chrome 76.0.3809.132(Windows 版)中已损坏和安卓))

经过反复试验,我最终得到了以下替代品,它适用于所有这些浏览器的当前版本:

br.big {display:block; content:""; margin-top:0.5em; line-height:190%; vertical-align:top;}
Run Code Online (Sandbox Code Playgroud)

笔记:

line-height:190% 除了最新版本的基于 Chrome 的浏览器之外,所有东西都适用。

vertical-align:topIE 和 Edge 需要(与 结合使用line-height:190%),以获得位于前一行之后的额外空间,它所属的位置,而不是部分之前和部分之后。

display:block;content:"";margin-top:0.5em 适用于 Chrome、Opera 和 Firefox,但不适用于 Edge 和 IE。

<br>如果您不介意编辑 HTML,则在标签后添加一些额外的垂直空间的另一种(更简单)方法是使用类似的方法。它适用于所有浏览器:

<span style="vertical-align:-37%"> </span><br>
Run Code Online (Sandbox Code Playgroud)

(当然,您可以根据需要调整“-37%”,以获得更大或更小的差距。)这是一个演示页面,其中包含该主题的一些其他变体:

https://burtonsys.com/a_little_extra_vertical_space_for_br_tag.html



2020 年 5 月 28 日:

我已经更新了演示页面;它现在演示了上述所有技术:

https://burtonsys.com/a_little_extra_vertical_space_for_br_tag.html


小智 6

br {   
    content: "";
    margin: 2em;
    display: block;
    margin-bottom: -20px; 
 }
Run Code Online (Sandbox Code Playgroud)

适用于 Firefox、Chrome 和 Safari。尚未在资源管理器中测试。(Windows 平板电脑没电了。)

换行符、字体大小在 Firefox 和 Safari 中的工作方式不同。


Sam*_*wry 5

我有一个想法,您可能可以使用:

br:after {
    content: ".";
    visibility: hidden;
    display: block;
}
Run Code Online (Sandbox Code Playgroud)

但这在 chrome 或 firefox 上不起作用。

只是想我会提到,以防其他人发生这种情况,我会为他们省去麻烦。


小智 5

请记住,(错误)<hr>按照某处建议的方式使用标签会结束<p>标签,因此请忘记该解决方案。
如果 f.ex. 有些东西在周围设置<p>了样式,在<hr>插入后,该样式在其余内容中消失了。


小智 5

这是一个适用于 IE、Firefox 和 Chrome 的解决方案。想法是将 br 元素的字体大小从 body 大小的 14px 增加到 18px,并将元素降低 4px,使额外的大小在文本行下方。结果是 br 下方有 4px 的额外空白。

br 
{ 
font-size: 18px; 
vertical-align: -4px; 
}  
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

521043 次

最近记录:

5 年,11 月 前