特异性.
#footer a是ID(#footer)和元素(a).
ID比类更具体,类比元素更具体.
页脚a不起作用,因为它是两个元素,这是非常低的特异性,它被一个:链接覆盖,它在技术上是一个元素和一个(伪)类,这意味着它具有比两个元素更高的特异性.
你需要做的就是增加页脚的特异性声明 – 给页脚一个类或一个ID,或者做一个页脚a:link,footer a:visited.
基本上它归结为ID总是覆盖类总是覆盖元素.我相信它是255个元素= 1个类,255个类= 1个ID(但你永远不需要那个特定的).内联样式和!重要样式比任何内容都更具体,包括ID.计算特异性的基本方法是在0,0表示法(ID,类,元素)中计算ID,类和元素的数量(假设您不必担心内联样式或!important).
#footer a是1,1.
a:链接是0,1,1.
页脚a是0,2.
这些是从最高到最低的特异性组织的.要使页脚比a:link更具体,您需要在声明中添加至少1个类或1个ID,例如:类似于页脚#footer a,footer.bottom a,footer a:link,footer a:visited等等(相应地将类或ID添加到HTML标记中).最后一个选项不需要更改任何HTML标记,因为你只是覆盖:link和:visited psuedoclasses(在特殊性计算方面计算为真正的类,就像psuedo元素一样:在计数为元素之前和之后).
所有解决方案中最简单的方法是将a:link,a:visited样式声明更改为a,这意味着声明将不如页脚中的声明更具体,并且您不需要为其更改任何其他内容开工.
特性可以说是CSS中需要掌握的最重要的概念.以下是一些了解更多信息的好资源: