2009-09-22 74 views
2

什麼被認爲是「好」的做法:換行符HTML

<div class="clr"></div>(其中CLR是明確的:兩者) 或只是簡單:

<BR CLEAR:BOTH /> 

我真的很困惑,因爲我曾經告訴永遠不要使用BR,但是BR的設計是爲什麼div類?

問:

難道是錯的只是使用<BR />當你想清除或者我應該使用DIV?

在此先感謝

編輯:我已經讀過http://www.w3.org/TR/html4/appendix/notes.html#notes-line-breakshttp://www.w3.org/TR/html4/struct/text.html#edef-BR

例子(注意我已經刪除類和直接添加樣式到HTML爲了便於閱讀):

<div style="float:left;"> 
    <a href="www.example.com"><img style="float:left;" src="/images/videos/video.jpg" width="90" height="75" alt="thumb" title="title" /></a> 
    <a href="www.example.com" >Title text</a> 
    <div style="clear:right;"></div> 
    <span>Length: duration here</span> 
    <div style="clear:right;"></div> 
    <span>descriptive text here<span> 
    <div style="clear:right;"></div> 
    <span>Date: date of added here</span> 
</div> 

在你的專家意見,我正確使用跨度,divs等?我應該使用BR的而不是Div的休息時間。

謝謝大家

閉注:

感謝您對所有指出,斷行是無關的花車結算。我需要確切地知道什麼是線性爆發......我想我不知道。

感謝freddy看到我真正想做的事情,並給我解決方案,我笨拙地問。

+3

http://stackoverflow.com/questions/686766/br-vs-div-in-clearing – madcolor 2009-09-22 12:07:08

+0

謝謝madcolor,所以div方法是對的! – Dorjan 2009-09-22 12:14:38

+0

如果您嘗試清除之前浮動的元素,則div方法正確。如果您嘗試創建換行符,那麼
是正確的代碼 – Steerpike 2009-09-22 12:27:04

回答

6

以上都不是。最佳做法是使用HTML來爲信息提供結構。

所以,你使用div來在頁面中放入一段信息。如果您需要在該信息之後換行,則可以使用CSS來設置它。


<div id="someinformation"> 
    <p>some parragraph of info</p> 
    <ul> 
     <li>an item of the list</li> 
     <li>another item</li> 
     <li>yet another item</li> 
    </ul> 
</div> 

現在在你的CSS樣式可以根據需要。該文件本身具有結構化的信息,並且具有由瀏覽器呈現的一些默認方式。屏幕閱讀器的結構非常適合用於視覺外觀的HTML元素。

假設你有更多的元素,在CSS中你可以決定讓它們出現在彼此旁邊,或換行符或一些邊距。

+0

對不起,我不確定我是否理解您。你能再解釋一遍嗎? – Dorjan 2009-09-22 12:14:04

+1

發佈了更新,我希望它有幫助。搜索周圍的語義HTML和XHTML。 – eglasius 2009-09-22 12:21:30

+0

嗯......我想要實現的是左側的圖像和右側的信息。在你的例子中,我可以將圖像浮動到左側,並且將UL設置在右側?而且不需要額外的清除? 還是我沒有球? – Dorjan 2009-09-22 12:24:19

2

您對自己給出的解決方案提出了錯誤的問題。那些「清晰」的元素通常不會產生換行符,他們在那裏清除浮動元素。

+0

這樣一個換行符就不一樣了,以什麼方式清楚了?我認爲所有無線電通信局都應用了Clear:兩種風格? – Dorjan 2009-09-22 12:18:27

+1

'
'會插入與清除浮動無關的換行符 – knittl 2009-09-22 12:22:35

+1

@Dorjan:BR也會創建換行符,DIV在技術上不會。 – 2009-09-22 12:24:01

0

我從來沒有使用一個div。例如,我認爲<br/>是在<p>內需要換行時最好的方法。 無論如何,我不確定你爲什麼使用CLEAR:BOTH或class = clr。

+0

我認爲你留下您的示例代碼以外的代碼標籤爲stackoverflow,因爲我看不到它們 – Dorjan 2009-09-22 12:19:23

0

如何在span元素中添加clear屬性,而不是在其中插入另一個(無意義的)元素?

HTML應該描述結構,而不是演示文稿。如果您添加BR - 換行符 - 更改演示文稿(網站的外觀樣式),則表示您做錯了什麼。

添加DIV或SPAN對結構沒有影響,因爲它們根本沒有語義含義。

+0

當您清除添加到一個元素之前清除自己的權利?不是之後? 這就是我對所有這些額外元素的感受,感覺很浪費,我只是不知道另一種方式...... – Dorjan 2009-09-22 12:20:35

+0

@Arve我同意你說的整體觀點,但我不會說DIV是毫無價值的。它的存在是爲了標記文檔中的一部分信息。它的使用錯誤只是爲了引起視覺行爲,但使用它來充分分組文檔中的信息並沒有錯。 – eglasius 2009-09-22 12:25:15

+0

添加明確的跨度似乎什麼都不做......我猜他們不接受它? – Dorjan 2009-09-22 12:38:24

2

BR在語義上用於在諸如短語中間或兩個單詞之間的位置添加換行符。它不清楚浮游物。

具有clear屬性的元素會清除元素上方指定的任一側的浮動元素,因此您可以在語義上使用div,因爲您不是創建換行符而是清除浮動元素。

BR可以被指定爲具有清晰但語義上的再次,這將缺乏意義。

要在某個文本之後添加填充/間隔/邊距,最好使用邊距/填充屬性,而不是連續使用BR。

因此,在總結:

This is the first line<br />Second line 

對於BR的。

<div style="float: left">Clear me</div> 
<div style="clear:left"></div> 

對於div的。

<div style="margin-bottom: 19px;">Test here</div> 

對於文本下的「換行」或更準確的頁邊距。

至於您的演示文稿,似乎您可能想要更多地研究浮動。從語義上講,事實上一切都是浮動的,然後你清除每一行。優美的編碼都是關於最小的代碼 - 最大的結果。

+0

感謝Dmitri +1提示 – Dorjan 2009-09-22 12:37:42