我剛纔看到這個在CSS文件:CSS:單ID選擇與ID選擇之後更多的東西
#nav { margin: 13px 0 0 0; }
#nav ul li { margin: 0 20px 0 0; }
不第二#nav屬性定義抵消第一#nav屬性定義?
(另外:我說的是正確的嗎?「屬性定義」?大括號內的東西通常被接受的術語是什麼?)。
我剛纔看到這個在CSS文件:CSS:單ID選擇與ID選擇之後更多的東西
#nav { margin: 13px 0 0 0; }
#nav ul li { margin: 0 20px 0 0; }
不第二#nav屬性定義抵消第一#nav屬性定義?
(另外:我說的是正確的嗎?「屬性定義」?大括號內的東西通常被接受的術語是什麼?)。
第二個定義沒有「取消」的第一個;它會選擇nav
後代的已命名元素,而不是選擇nav
元素本身。
作爲ID爲nav
的元素內的無序列表的後代的列表項目(li
)將由第二規範進行樣式化。 (根據Quentin的評論編輯)ID爲nav
的元素將使用第一個規範。 #nav
中的元素可以從第一個規範繼承。對於某些屬性,但不是margin
,繼承是自動的。 font-family
屬性就是一個例子。 margin
屬性只能通過明確的margin: inherit;
規範繼承。
如果代碼是這樣的:
#nav { margin: 13px 0 0 0; font-family: Helvetica, Arial, sans-serif;}
#nav ul li { margin: 0 20px 0 0; }
然後列表項,並在nav
其他一切都沒有自己的font-family
規範將有一個sans-serif字體。
花括號內的東西是屬性和值。所以,margin
是一個屬性,並且保證金規格是值。花括號的剩餘部分是選擇器。
不,它們適用於不同的元素,因爲它們具有不同的選擇器。
第一條規則適用於ID爲「nav」的元素。第二條規則適用於元素li,即元素ul的後代,該元素是id爲「nav」的元素的後代。
你可以閱讀CSS選擇在這裏:https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/Selectors
...和那些選擇器不能匹配相同的元素(至少不是有效的HTML)。 – Quentin 2014-09-28 14:55:52
1)號中的第二選擇僅適用於li
這是ul
後裔這又是#nav
後代,而第一個只適用於#nav
2)你叫他們爲「風格」
第一個選擇帶有id ='nav''的元素並對其進行樣式設置,而第二個元素在id ='nav''的元素內選擇'ul'下的'li'元素。 – Harry 2014-09-28 14:56:14
這是[聲明塊](http://apps.workflower.fi/vocabs/css/en#declaration-block) – Quentin 2014-09-28 14:56:34
不,第二個將只覆蓋id爲nav的元素中的li。 – 2014-09-28 14:56:35