CSS:单个ID选择器与ID选择器,后跟更多内容

时间:2014-09-28 14:53:46

标签: css

我刚刚在css文件中看到了这个:

#nav { margin: 13px 0 0 0; }

#nav ul li { margin: 0 20px 0 0; }

第二个#nav属性定义是否取消了第一个#nav属性定义?

(另外:我说的是对吗?"属性定义"?花括号内的内容通常被接受的术语是什么?)。

3 个答案:

答案 0 :(得分:3)

不,它们适用于不同的元素,因为它们有不同的选择器。

第一条规则适用于ID为" nav"的元素。第二个规则适用于元素li,它是元素ul的后代,它是id为" nav"的元素的后代。

您可以在此处阅读有关CSS选择器的信息:https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/Selectors

答案 1 :(得分:0)

1)否。第二个选择器仅适用于li的后代,ul的后代又是#nav的后代,而第一个仅适用于{#nav的后代1}}

2)你称之为“风格”

答案 2 :(得分:-1)

第二个定义没有"取消"第一个;它选择作为nav后代的命名元素,而不是选择nav元素本身。

列表项(li)是ID为nav的元素中无序列表的后代,将由第二个规范设置样式。 (根据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是属性,边距规范是值。花括号左边的东西是选择器。