2010-11-06 54 views
1

我似乎無法讓我的CSS鏈接到當我使用一個div:爲什麼當我擁有#id #id時CSS不能工作?

[in stylesheet(style.css)] 

#sitecontainer .header { 
    background-image:url('/images/header-background'); 
} 


<div id="sitecontainer"> 
     <div id="header"></div> 
     <div id="content"></div> 
     <div id="footer"></div> 
</div> 

然而,當我把CSS的內聯在它的工作頁面。有任何想法嗎?

皮特

回答

10

你的CSS是在頭部使用類選擇:

.header 

,而不是。

#header 

如果你有HTML標記,而像這樣的這樣的工作:

<div id="sitecontainer"> 
     <div class="header"></div> 
     <div class="content"></div> 
     <div class="footer"></div> 
</div> 

但在你的情況,你可以使用:

#sitecontainer #header 

甚至更​​好的(除非你在你的網站上用這個特殊的標題做一些非常具體的事情)你應該把它縮減到

#header { /* CSS rules here */ } 

欲瞭解更多信息 - A really good article of the various CSS selection methods is here on NetTuts

+0

在我看來,標題,內容和頁腳都是非常通用的佈局元素。他們可能會再次出現在您的頁面中更深的嵌套。例如:您的網站有一個標題,內容和頁腳,並且在您的內容中,您可能想要顯示一些文本文檔,這些文檔本身在語義上也具有標題,內容和頁腳,我認爲類是更好的方法。 – Jan 2010-11-06 12:18:54

+0

我傾向於同意。使用HTML5標題,頁腳和文章都是可重複的元素,因此要有類似的語義,類是要走的路。 – isNaN1247 2010-11-06 13:02:57

+0

我仍然喜歡給我的主頁眉和頁腳頁眉和頁腳的id,子頁眉和頁腳可以有一個類。 – zzzzBov 2010-11-06 17:22:35

2

你需要在這兩個地方#

#sitecontainer #header { 
    background-image:url('/images/header-background'); 
} 

確保您的ID在頁面中是獨一無二的,雖然,或者這將導致其他問題。如果你有多個標題,然後使用class屬性來代替:

<div id="sitecontainer"> 
    <div class="header"></div> 
    <div class="content"></div> 
    <div class="footer"></div> 
</div> 

...並與.header類選擇使用當前的CSS。

+1

-.-是不是隻是一個錯字 – Harmen 2010-11-06 11:24:34

+0

@哈爾門 - 它可能是,但假設明顯不是問題只會導致無休止的頭痛,解決明顯的問題,*然後*看看它是否仍然破損:)問題中的代碼不起作用...... *從不*認爲它只是「錯字」,許多*許多*,**許多**編程問題都是錯別字。 – 2010-11-06 11:27:15

2

只需使用#header - 因爲它是一個ID,它應該已經是唯一的(編輯:只要沒有其他頁面,你不希望這種情況發生,並且不具有sitecontainer)。

+3

儘管它在頁面中應該是唯一的,但它在所有*頁面中可能並不唯一。例如,如果OP在另一個不應設置樣式的頁面上有'

',那該怎麼辦? – 2010-11-06 11:25:59

+0

@Nick Craver:嗯,沒錯。我假設他在所有頁面上命名容器「sitecontainer」。 – thejh 2010-11-06 11:33:14