2012-10-08 52 views
15

這些天用HTML5和CSS3,是<br>標籤使用邊緣/填充可以使用時皺眉?風格明智<br>或填充/邊距元素

編輯:這是關於div元素之間的間距爲我的用例,但一般最佳做法建議也是受歡迎的。

+0

我通常會建議不要使用'
'標記。 – Shmiddty

+1

如果這不是純粹的文體風格(例如思想分離),您可能正在尋找'


',並使用自定義樣式(透明,高度爲「空白」或「間距」爲空白)。 – 0b10011

回答

28

實際上有相當圍繞其使用良好定義的規則,聯想起的HTML 2.0的日子,當它第一次推出:

<BR>元素指定單詞之間的換行符(參見第6,「人物,單詞和段落「)。例如:

<P> Pease porridge hot<BR> 
Pease porridge cold<BR> 
Pease porridge in the pot<BR> 
Nine days old. 

<br>元件本身絕不是爲了用於控制餘量/填充。雖然他們在HTML 3.2中引入了一個屬性clear屬性來處理浮動圖像之類的東西,但它很快在HTML 4和XHTML 1中被棄用,轉而採用CSS。這大概是15年前,所以這真的不是什麼新鮮事。

HTML5,他們找到了更清楚的是<br>不用於演示或佈局,結合實例(和the clear attribute is obsolete):

br元素必須只能用於換行符這實際上是部分內容,如詩歌或地址。

下面的例子是br元件的正確用法:

<p>P. Sherman<br> 
42 Wallaby Way<br> 
Sydney</p> 

br元件不能用於在分離段專題小組。

下面的實施例是不符合要求的,因爲它們濫用br元件:

<p><a ...>34 comments.</a><br> 
<a ...>Add a comment.</a></p> 
<p><label>Name: <input name="name"></label><br> 
<label>Address: <input name="address"></label></p> 

下面是替代上述,這是正確的:

<p><a ...>34 comments.</a></p> 
<p><a ...>Add a comment.</a></p> 

<p><label>Name: <input name="name"></label></p> 
<p><label>Address: <input name="address"></label></p> 

因此,使用<br>代替CSS邊距來佈局的目的一直令人不悅,在至少由編寫規範的人來完成。

+4

[HTML 5規範](http://www.w3.org/TR/html5/the-br-element。html#the-br-element)比語言參考更具信息性:* br元素必須僅用於實際上是內容的一部分的換行符,如在詩歌或地址中。* – Quentin

+0

@Quentin:感謝您的鏈接。由於某種原因,HTML5規範一直是我的導航噩夢,我無法找到該部分。我會更新我的答案。 – BoltClock

+0

使用
讓我感覺更簡單,更清潔。任何人都可以解釋它可能造成的不利情況嗎? –

0

取決於您是否喜歡使用行高或邊距/填充。

+7

如果您使用line-height來獲得邊距的效果,那麼您可能會做錯了。 –