2009-07-17 51 views

回答

44

是的,他們是不同的。

即使你的風格跨度display: block你仍然不能把塊級元素裏面:

<div><p>correct</p></div> 
<span style="display: block;"><p>wrong</p></span> 

的(X)HTML仍然要服從(X)HTML DTD(哪一個你使用),不管CSS如何改變事情。

+2

除了需要的字符數稍少之外,在`div:`display:inline`上使用`span`還有什麼好處? – JAB 2012-07-23 20:38:34

+1

OMG好的答案。 – VoidKing 2013-05-15 19:41:45

1

是的。他們可以包含不同的東西,並允許在不同的地方。

他們也將在不同的環境中呈現,其中CSS不可用(例如,在一些電子郵件系統)

12

這裏就是它使一個真正的區別(用於合法的代碼,至少)一個例子:

<a href='example.com'> 
    <span class='title' style='display:block;'>The title of the image is also a link</span> 
    <img src="example.com/someimage.jpg"/> 
</a> 

這讓你讓你跨越一個塊級元素,使圖像和跨度突出在一起的時候蒙上了一層陰影。

div不能嵌套在標籤內。

+0

它將span _display_作爲支持CSS的設備上的塊,但它不會使其成爲塊級元素 - 它仍然是內聯元素。在這種情況下,這實際上就是你想要的,因爲塊效應純粹是爲了視覺效果:-) – NickFitz 2009-07-17 09:00:29

3

A <div>是一個塊級元素,它除了定義離散的內容塊之外,沒有其自己的特定語義。 A <範圍>是一種內聯元素,它除了定義內聯內容的離散片段之外,沒有其自己的特定語義。

你可以使用CSS將一個跨度顯示作爲一個塊,但是絕對沒有理由這樣做編輯:除了純粹的視覺效果,就像Gabriel演示的那樣;我的意思是,你不應該使用CSS試圖強制跨度在文檔結構方面具有塊級意義。此外,如果你這樣做,你的內容可能對沒有CSS的用戶(比如盲人用戶或搜索引擎)顯得毫無意義。

如果是塊,請使用div。如果它是內聯內容的一部分,請使用跨度。請記住,CSS只是單純的介紹;如果您的內容可用,您的標記仍然需要按照邏輯方式進行組織。

查看http://www.w3.org/TR/html401/struct/global.html#edef-DIV瞭解詳情。

相關問題