2011-04-12 159 views
2

我在CSS文件中有id選擇器。 Headerphoto和logo-box是標題ID的內部id選擇器。我真的需要將這兩個添加爲內部id選擇器嗎?我可以將它們添加爲普通的id選擇器。這樣做的最好方法是什麼?優缺點都有什麼?CSS內部id選擇器

謝謝!

/* Header styles */ 
#header { 
    position: relative; 
    height: 176px; 
    text-align: left;  
    margin: 0; padding: 0; 
    background: #FFF; 
} 

#header #headerphoto { 
    position: absolute; 
    right: 15px ; top: 15px; 
    width: 455px; 
    height: 156px; 
    background: #FFF url(headerphoto.jpg) no-repeat; 
} 

#header #logo-box { 
    position: absolute; 
    left: 15px ; top: 15px; 
    width: 280px; 
    height: 156px; 
    background:#1c1e27; 
} 

回答

3

不要緊,只要每個頁面上,並且你確定了這三個要素的結構是一樣的只是#headerphoto一個#logo-box

真的事宜,如果加入#header ID,在一些網頁上,#headerphoto#logo-box出現在沒有id="header",你的樣式被所有這些頁面元素,你想要的樣式應用當且僅當這些元素在那一箇中​​。但是在這種情況下,這會讓你的頁面結構變得不一致,不是嗎?

至於性能,無論是快,慢或同一窩ID選擇,我不在乎,你也不應該,樣式表作者,因爲ID選擇已經最快反正

+1

然後,有時我會添加外部ID選擇器,以便將這些元素在我的樣式表中邏輯分組在一起。例如,這些元素可以在'#header'中找到,所以它們有點相關。添加'#頭文件選擇器可視化地表示這種關係。所以從某種意義上說,代碼記錄了它自己。現在,我真的可以使用評論,但嚴重的是,我不在乎。 – BoltClock 2011-04-12 10:02:09

+0

感謝:-)你對下面的「Jochen Hilgers」的回答有什麼看法? – CharithJ 2011-04-12 10:10:30

+0

@CharithJ:對此不太確定。 – BoltClock 2011-04-12 10:12:00

1

您不必添加#header選擇器,但我聽說頁面渲染速度越快,選擇器聲明得越精確。在我看來,這並不重要。