如何改变一个高度?

时间:2009-09-11 08:14:54

标签: html css

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

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

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

我已尝试将<br>的{​​{1}}和line-height设置为height,我也使用了Google搜索和Stack Overflow-ed,但未找到任何解决方案。这有可能在不改变布局的情况下实现吗?

35 个答案:

答案 0 :(得分:245)

的CSS:

br {
   display: block;
   margin: 10px 0;
}

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

line-height:22px;

对于谷歌浏览器,consider设置content

content: " ";

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

答案 1 :(得分:57)

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

  br {
        line-height: 150%;
     }

答案 2 :(得分:37)

所以,上面的窥视基本上有类似的答案,但这里非常简洁。适用于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 */
}

答案 3 :(得分:37)

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

因此:

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

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

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

答案 4 :(得分:25)

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

答案 5 :(得分:17)

我刚遇到这个问题,我使用

解决了这个问题
<div style="line-height:150%;">
    <br>
</div>

答案 6 :(得分:12)

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

答案 7 :(得分:6)

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

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

以下是example上的QuirksMode

答案 8 :(得分:4)

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

答案 9 :(得分:4)

br {   
    content: "";
    margin: 2em;
    display: block;
    margin-bottom: -20px; 
 }

适用于Firefox,Chrome和苹果浏览器。 尚未在Explorer中测试过。 (Windows平板电脑无法使用。)

换行符,font-size在Firefox和&amp ;;苹果浏览器。

答案 10 :(得分:4)

这是一个适用于IE,Firefox和Chrome的解决方案。我们的想法是将br元素的字体大小从14px的主体大小增加到18px,并将元素降低4px,这样额外的大小就会低于文本行。结果是br。下面有4px的额外空格。

br 
{ 
font-size: 18px; 
vertical-align: -4px; 
}  

答案 11 :(得分:4)

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

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

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

我遇到了与PC / Mac有关的问题......它为文本提供了新的行高,但没有进行换行......你可能想自己做一些测试。遗憾!

答案 12 :(得分:4)

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

<br></br>

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

<br> or 
<br/> 

然后它不起作用,至少在Chrome,IE和Firefox中是如此。 怪异!

答案 13 :(得分:4)

我曾想过你可以使用:

br:after {
    content: ".";
    visibility: hidden;
    display: block;
}

但是这对chrome或firefox无效。

以为我会提到,以防万一发生在其他人身上,我会为他们省事。

答案 14 :(得分:3)

迈克尔和尤达都是对的。您可以做的是使用<p>标记,作为块标记,使用底边距来偏移下一个块,因此您可以执行与此类似的操作以获得更大的间距:

<p>
    A block of text.
</p>
<p>
    Another block
</p>

另一种方法是使用块<hr>标记,您可以使用该标记明确定义间距的高度。

答案 15 :(得分:2)

<br />将占用<p>文字填充行的空间,您无法更改。如果你想要更大,这意味着你想要分成段落,所以添加其他<p>。不要忘记你是最能语义的;)

答案 16 :(得分:1)

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

=================方法1 ==================

br {
    display:none;
}

OR

=================方法2 ==================

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;
}

OR

=================方法3 ==================

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

答案 17 :(得分:1)

我必须开发一个将HTML转换为PDF的解决方案,并将表格单元格中的文本垂直居中,但除了输入普通<br>

之外没有任何效果

所以,在盒子外面思考,我通过调整字体大小(以pt为单位)改变了垂直尺寸。

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

答案 18 :(得分:1)

使用<div>

<div>Content 1</div>Content 2

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

这变为

<div>Content 1</div>Content 2

答案 19 :(得分:1)

很抱歉,如果其他人已经说过这个,但简单的解决方案就是玩弄你的“行高”。如果在使用换行符时占用太多空间,那只是因为你的行高设置得太高了。您可以在CSS中更正此问题(但知道它会影响使用该属性的所有内容),或者您可以使用内联样式来覆盖CSS。

答案 20 :(得分:1)

尝试在包含line-height标记的p标记上使用CSS br属性。请注意,如果要隔离它,可以id p div标记,尽管使用{{1}}进行隔离可能会更好,IMO。

答案 21 :(得分:1)

你也可以在CSS中使用“block-quote”属性。这将使它不会影响您的单独行,但允许您为段落之间的断点或“块引号”设置参数。

更新:
我纠正了。 “blockquote”实际上是一个html属性。你使用它就像&lt; p>和&lt; / p&gt;围绕你的工作。然后,您可以在css中设置块引用的参数,如

blockquote { margin-top: 20px }

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

答案 22 :(得分:1)

您似乎无法调整BR的高度,但您可以使用display:none

使其可靠地消失

在搜索以下解决方案时遇到此页:

我有一种情况,第三方支付网关(Worldpay)只允许您自定义他们的支付页面,其中最多10k的CSS和HTML(不允许脚本)被注入模板的主体,并且在几个BR之后, FONT标签等 再加上他们的DTD迫使IE7 / 8进入Quirks模式,这使得跨浏览器的定制尽可能地难以实现!

关闭BR会让事情变得更加一致......

答案 23 :(得分:0)

如果目的是在<br>标记之后添加一些额外的垂直空间,而不破坏逻辑段落,这样的事情就可以解决问题。它适用于所有浏览器:

<span style="vertical-align:-37%"> </span><br>

这是一个演示页面,其中包含主题的其他一些变体:

http://www.burtonsys.com/a_little_extra_vertical_space_for_br_tag.html

答案 24 :(得分:0)

当我无法通过span标签获得样式间距时,这对我有用:

        <p style='margin-bottom: 5px' >
            <span>I Agree</span>
        </p>
        <span>I Don't Agree</span>

答案 25 :(得分:0)

<span style="line-height:40px;"><br></span> 

您必须在内联和每个元素上执行此操作,但它应该适用于大多数浏览器 摆弄线高以获得理想的效果。如果你在每个元素上内联它,它应该适用于大多数浏览器和电子邮件(但这太复杂了,不能在这里讨论)。

答案 26 :(得分:0)

<br>用于换行。
<br />也用于换行符,void元素或xhtml可选地需要“/”。
使用<br></br>,浏览器将为两者分别插入两个换行符“虚拟”相同。
没有办法增加换行符的大小,因为它只是一个换行符 使用可设置为隐藏(<div style="vilibility:hidden; line-height:150%;"</div>)或更好的段落的div。

答案 27 :(得分:0)

为了解决由<br>标记引起的间距问题,任何登陆此处的人都会回答更一般的问题。我必须做很多重置才能接近像素完美。

br {
    content: " ";
    display: block;
}

对于我要解决的具体问题,我必须在这些线之间有一个特定的空间。我在顶部和底部添加了一个边距。

br {
    content: " ";
    display: block;
    margin: 0.25em 0;
}

答案 28 :(得分:0)

我通过使用一系列解决方案让它在IE7中工作,但主要是像Nigel和其他人所建议的那样将Br包装在DIV中。添加了ID并在=“server”运行,因此我可以在从复选框行中删除复选框时删除BR。

.narrow {
    display: block;
    margin: 0px;
    line-height: 0px;
    content: " "; 
}
<div class="narrow" run at="server"><br></br></div>

答案 29 :(得分:0)

可能使用两个br标签是适用于所有浏览器的最简单解决方案。但这是重复的。

<p>
content
</p>
<br /><br />
<p>
content
</p>
<br /><br />
<p>
content
</p>

答案 30 :(得分:0)

仅添加一个段落而不是像这样的换行符

bla la la bla bla bla abla la bla bla bla abla la bla bla a

bla la bla bla bla bla abla la bla bla bla bla la bla bla bla a

bla la bla bla bla abla la bla bla bla abla la bla bla bla a

然后,您可以指定lineheight或padding或用于该p的任何内容

答案 31 :(得分:0)

代替

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

我做到了,我将段落放在div中,并赋予了它 line-height:2px

#html

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

#css

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

答案 32 :(得分:0)

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

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

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

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

答案 33 :(得分:0)

在 Markdown 中使用一些 HTML,不得不在列表中强制使用 <br> 导致过于狭窄,给定的解决方案都没有按预期工作(至少在我的设置中)

结束了

<div style="height:10px;font-size:10px;">&nbsp;</div>

我发现它 here,非常接近 dorogz 的建议。当然对于标准需求 CSS 更好

答案 34 :(得分:-1)

可能很容易找到一个解决方案,你只需要创建不同类型的
。似乎对我有用。

示例: (HTML代码)

<br/ class="150%space">

(css代码)

br[class='150%space']
{
   line-height: 150%;
}