级联当声明冲突时,级联会根据三个条件来解决冲突。(1)样式表的来源:样式从哪里来,包括你的样式和浏览器默认的样式。(2)选择器优先级:哪些选择器比其他选择器更重要。(3)源代码顺序:样式在样式表中声明的顺序。SelectorPriorityRules?如果一个选择器有更多的ID,它就获胜(即它更具体)。?如果ID的数量相同,则类别最多的选择器获胜。?如果两次比较都匹配,则具有最多标签名称的选择器获胜。伪类选择器(例如hover)和属性选择器(例如[type="input"])与类选择器具有相同的优先级。通用选择器(*)和组合器(>、+、~)对优先级没有影响。两条经验法则(1)不要在选择器中使用ID。即使只使用一个ID也会大大提高优先级。当你需要覆盖这个选择器时,你通常找不到另一个有意义的ID,所以你复制原来的选择器并添加另一个类,使其与你想要覆盖的选择器不同。(2)不要使用!重要的。它比ID更难覆盖。一旦使用,如果要覆盖原来的语句,就需要再添加一条!重要的,还是要处理优先级的问题。继承如果元素的属性没有级联值,它可能会继承祖先元素的值。但并不是所有的属性都可以继承。默认情况下,只有某些属性被继承,通常是我们希望被继承的属性。主要是文本相关的属性:color,font,font-family,font-size,font-weight,font-variant,font-style,line-height,letter-spacing,text-align,text-indent,text-转换、空格和字间距。还有一些其他的属性也是可以继承的,比如列表属性:list-style、list-style-type、list-style-position、list-style-image。也可以继承表格的边框属性border-collapse和border-spacing。继承的属性按顺序传递给后代元素,直到它被级联值覆盖。特殊值使用inherit关键字使用inherit关键字。它可用于覆盖另一个值,以便该元素继承其父元素的值。当属性没有级联值且不是继承属性时,使用initial关键字将使用属性的初始值。当然,我们也可以设置initial关键字来显式使用初始值。css的每个属性都有一个初始值,这个值和浏览器有关。不同的浏览器可能会有差异,但记住它不属于浏览器的默认样式表(useragenttable)。许多属性可以缩写,例如font、background、margin、padding等。大多数缩写属性可以省略一些值,只指定我们关心的那些。但请注意,这样做仍会设置省略的值,即它们将被隐式设置为初始值(而不是继承值)。这会默默地覆盖其他地方定义的样式。
