使用<BR />有时会不好吗?


157

有时使用<BR/>标签不好吗?

我问是因为我的开发团队给我的一些初步建议是:不要使用<BR/>;不要使用。而是使用样式。但为什么?使用<BR/>标签时是否会有负面结果?


10
找到最佳答案的最佳方法是去您的开发团队,问问他们为什么?
azamsharp

47
突然想从StackOverflow而不是团队成员那里得到答案是一件错误的事情吗?
Nosredna

7
不,只是有人给他一个主观答案,他要我们猜测其背后的原因...只要去问一下给您主观答案的人,特别是他们是否在附近(在同一个开发团队中)
Gabriel Magana

8
通常,“新建议”是在新员工时出现的。新员工并不总是想问“为什么?” 显然,有时候最好问为什么,但是我认为Burak Ozdogan在阅读了这些问题之后可能理解了“为什么”。或者至少至少了解HTML社区对这个主题有什么大的了解,足以对其进行讨论。我会说他采取了正确的举动来这里问。
Nosredna

5
我了解您的建议,并且您很正确。但问题是,当您进入新团队时,您会在短时间内获得大量投入。其中一些只是被提及;就像括号中的细节一样。我想在这里提出问题的原因有两个:要获得答案并就如何解决问题有不同的见解。多谢你们!
09年

Answers:


173

不使用的主要原因<br>是它不是语义的。如果要将两个项目放在不同的可视块中,则可能希望将它们放在不同的逻辑块中。

在大多数情况下,这意味着只使用不同的元素(例如)<p>Stuff</p><p>Other stuff</p>,然后使用CSS正确地将块隔开。

在某些情况下,<br>从语义上讲是有效的,即,换行符是要发送的数据的一部分。这实际上仅限于2个用例-诗歌和邮寄地址。


38
就个人而言,我更喜欢用<pre/>诗歌。这样,您可以明确指定目的是保持原始的构图,包括可能的缩进。
2012年

6
@MichałGórny提出了一个好要点- <br>似乎仅在满足以下所有条件的情况下才是合适的:1.换行符在语义上是有意义的,2.缩进在语义上是没有意义的(否则,您应使用<pre>,3.没有其他语义上合适的) 。标签,就像一个段落或标题标签的邮件地址满足所有这三个条件等做歌词诗可以振振有词地违反了“缩进是没有意义的”条件,所以可能会更好地放置在。<pre>
马克·阿梅里奥

2
<br />在电子邮件的签名中使用怎么样,例如: <footer>Sincerely,<br />StrexCorp</footer> 意见?
JHS

109

我认为您的开发团队正在<br />指代边距间距。要在元素之间留出空白,请通过CSS使用padding / margin样式。

错误使用<br />

<div>
   Content
</div>
<br />
<br />
<br />
<br />
<div>
     More content...
</div>

善用<br />

<style>
     div {
          margin-top:10px;
     }
</style>

<div>
   Content<br />
   Line break
</div>

<div>
     More content...
</div>

4
你不能只是删除您点击S和添加CSS,因为你已删除您点击那儿什么的风格。说“删除换行符”而不帮助(字面意义上)填补空白并没有很大帮助
Gareth

7
没错,iamkoa,但这不能解释原因。因此,它不能回答问题。24票似乎有点过分。
Lightness Races in Orbit

@iamkoa您没有解释原因
法比安·皮克内

我认为第二个选项更好,因为它更干净,更简单,我认为不需要使用br
simon

26

通常,<br/>这表示语义HTML较差。最常见的情况是使用<br/>声明段落分隔符,这是语义上更好的方法。请参阅“ 床和早餐”

在某些情况下,它是正确使用的标记,但经常被滥用,以至于人们采取“请勿使用”的心态来迫使人们进行更好的语义思维。


13

您的团队的意思可能是不使用<br>在段落之间进行拆分。

<p>I am a paragraph</p>
<p>I am a second paragraph</p>

这样做是更好的方法,因为您可以通过CSS轻松调整段落之间的间距。除此之外,我想不出有什么话可以说断行。


9

相同的概念适用于为什么我们不使用表格进行布局-使用表格进行表格和CSS进行布局。

使用<br/>,如果你想影响布局文字和CSS的块断裂线。



2

通常,我将始终使用CSS在元素上设置适当的边距和填充- <br />除了语义上更正确之外,它比各处的s 杂乱得多。

也许我唯一会<br />优先使用CSS设置的边距和填充的方法是哪怕是严格的技术要求,即使这是一个孤立的事件,需要的空间也要更多一些。如果我有一个很大的样式表,并且似乎不值得仅为该事件设置一种额外的样式,则可以将a <br />一次性使用。

像大多数事情一样,<br />只要正确使用s也不是一件坏事。


1

我尝试以禁用CSS时易于阅读的方式编写标记。如果仅使用BR来增加间距,则最好使用边距和填充。


1

<br />应该仅用于换行符,而不能应用于页面样式。例如,如果您在段落之间需要额外的空间,请给他们一个类,然后将额外的填充应用于段落。不要用<br /><br ><br />


1

它们将用来表示换行符。而已。不像一般的地理位置那样填满空间。但是,只有一种情况,它们可能比换行符用于其他目的:清除浮点数。

<br style="clear: both;">

1
尽管使用了此方法,但它不是有效的XHTML。
iamkoa

2
您通常可以通过使用contains overflow:auto元素来解决此“ hack”问题。
mpen

2
@iamkoa:我不使用XHTML。HTML是HTML,而不是XML。
BalusC,2009年

1

不要使用三个或多个连续的<br>s,这表示您正在将它们用于样式目的,不,您不应该这样做。

有人会说一个<br>就足够了,您应该使用而不是两个<p></p>,但是在某些情况下(例如,剧本),您想要引入更长的停顿,而又不暗示要改变话题或重新开始一个新的时期,就像一段通常所做的那样。


0

如果使用得当,它们很好。例如,您不应该使用它们代替<p>标签或在元素之间创建间距。如果您连续有两个,则可能做错了。


0

如果您这样做: <BR/> <BR/>

您将在不同的浏览器上获得不同的布局。

更深层次:
如果<BR/>仅用于换行符-好的。
如果<BR/>用作行距垫-不好。


0

这是一个示例,如何<br>对样式产生负面影响(运行视觉效果的代码段)

(请注意右侧未对齐的按钮和奇数空格):

button {
  width: 70px;
  height: 70px;
}
#arrows {
  border: solid thin red;
  display: inline-block;
}
#arrows span:first-of-type { 
  text-align: center; 
  display: block;
}
#moveUp {
  margin: 0;
}
/* In the current case instead of <br> use display */
/*
#arrows span:last-of-type { 
  display: block;
}
*/
<div id="arrows">
  <span>
    <button id="moveUp" value="üles">&uarr;</button> 
  </span>
  <button id="moveLeft" value="vasakule">&larr;</button> 
  <button id="moveDown" value="alla">&darr;</button> 
  <button id="moveRight" value="paremale">&rarr;</button> 
  <br>    <!-- note the shifted button and odd space on right -->
  <span>or move with keyboard arrows</span>
</div>


-2

在HTML(最多HTML 4):使用<br>
在HTML 5: <br>是优选的,但<br/><br />也是可接受
在XHTML: <br />是优选的。也可以使用<br/><br></br>

因此,使用<br>标记是完全有效的HTML。但是<br>不建议使用?

不使用的主要原因<br>是因为它不是语义标记并且内部没有内容。可以避免像

<p>some<br>text<p>

可以标记<br>

 <p>some</p>
 <p>text<p>

如果您正在使用<br>其他目的,例如顶部间距等,则可以通过CSS margin属性来实现。


1
请注意,使用<p>将在顶部和底部增加〜16px的边距。将每个<p>标记的页边距设置为0px,以避免用比应使用的更多的高度分隔线。
Satbir Kira 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.