2011-03-14 33 views
2

很多時候,我看到這樣的事情:是不是改變了HTML/CSS標準的正文?

<body> 
    <div class="container"> 
    </div> 
</body> 

爲什麼不只是做:

<body class="container"> 
</body> 
+1

兩者都是完全有效的HTML。那裏沒有標準。但是,通常情況下,如果您的站點正在從CMS中吐出,CMS通常不允許觸摸BODY標籤(大多數CMS從代碼角度來看都是如此) – 2011-03-14 21:57:55

回答

4

你完全可以自由地做任何操作:

  • 添加classid屬性的body元素;
  • 將CSS直接應用於body元素,有或沒有classid屬性;或
  • 直接應用CSS到html元件,雖然沒有class屬性id並用some important caveats

這些都是CSS和HTML的完全合法使用。

爲什麼<div id="container"/>?多年來,許多CSS技術使用任意容器元素來簡化概念,以避免某些跨瀏覽器不一致或者因爲它們太複雜而無法實現。一些更爲微妙的原因包括:在較舊的瀏覽器中,不能直接將CSS應用於html元素,並且這些元素有(且有)某些不常見或受限的屬性 - 通常用於obvious reasons。 (因爲這個原因,它們是sometimes described as being "magic")。

這些都是爲了創造一種幾乎可以實現任何中等複雜佈局的情況,從一開始就用乾淨清潔的容器元件開始,這是不可避免的。雖然這種做法開始作爲一種手段來結束它很快成爲風景的一部分,現在很多開發人員不會考慮增加額外的標記。

2

沒有,沒有什麼東西是說你不能在一個類補充人體。

將類添加到身體中實際上在各種CMS中非常常見,並且非常適合主題化或設計特定頁面。

從你的例子看,如果你只是想用身體作爲容器,爲什麼還要打擾班級呢?應該只有一個body元素,所以只需在選擇器中調用它。

1

Walter,如果您需要將一個稍微不同的樣式子集應用於具有自定義身體標記的頁面,它可能是有意義的。

使用包裝div通常是爲了一些表象的原因,使語義上沒有意義;如果您的項目不需要它,請不要使用它。有時候,只有使用body標籤來包含頁面對於某些佈局來說太不靈活了,而喬丹說一些舊的瀏覽器不能將CSS應用到根元素。