2011-11-11 76 views
4

我建立了WordPress的自定義主題,看到這個默認的style.css 2010文件:CSS:雙聲明是做什麼的?

#wrapper { 
    margin: 0 auto; 
    width: 940px; 
} 
#wrapper { 
    background: pink; 
    margin-top: 20px; 
    padding: 0 20px; 
} 

現在這是默認的代碼(除pink)。當我嘗試並摺疊它時,這看起來是合乎邏輯的,這是相當不同的。

我弄不明白爲什麼你會這樣宣佈同樣的元素兩次?我以前從未見過...

WR!

回答

4

當您想要在多個元素上應用共享屬性時,它非常有用。來自多個源的CSS:另一種有用的應用是從多個來源添加樣式表
實施例:

#head, #foot { 
    height: 100px; 
} 
#foot { /*Another foot*/ 
    color: red; 
} 

第二示例

/* External stylesheet: common.css */ 
body { 
    background: yellow; 
} 
/* Inline stylesheet, overrides external stylehseet */ 
body { 
    background: pink; 
} 

當兩個特性具有相同的特異性,所述最後聲明的屬性將被應用。

+0

這個,我已經知道了。如上所述,以上是來自SAME文件。實際上閱讀這個問題,而不是假設你已經看到了這個問題。 – WhiteRau

+0

@WhiteRau這些是一些例子。有兩個ID可能有各種原因:'1。開發人員添加了CSS而沒有查看選擇器是否已經存在2.選擇器最初位於不同的文件中,但合併文件後,選擇器出現兩次3.最初,#個包裝選擇器中的一個是另一個#包裝。開發人員決定刪除#另一個,並在「#wrapper,?」上使用搜索和替換,結果產生了兩個#wrapper選擇器。「我又給出了三個例子。你現在有更好的理解嗎? –

+0

不認爲我正在溝通什麼問題是非常有效的。我放棄了這個問題。我對我的好奇心已經是-2了......不值得。 :P – WhiteRau

0

它只是覆蓋以前聲明的屬性。

wrapper現在將有margin:20px auto 0 auto(右上角左下角)。

+0

沒有,它做了別的事情,因爲是WP和所有的,他們的代碼通常很緊密,所以雙重聲明沒有意義,正如我所說的,當你試圖將兩者合二爲一時,會發生完全不同的事情,如果所有的第二個做的是重寫第一個,不應該發生。什麼都不會發生。但確實如此,原因我不明白。 – WhiteRau

+0

http:// jsfiddle。net/nAGxa/- 這就是我在說的。如果其他事情完全發生,那麼在CSS中就必須有其他的東西來實現它。 – motoxer4533

+0

我會調查。我們會認爲這是封閉的。無法承受穩定下降的點數以繼續嘗試尋找答案。謝謝。 – WhiteRau