CSS层叠规则优先级、内部样式表与外部样式表优先级

本文详细介绍了CSS中的层叠规则,包括特殊性、重要性、继承和顺序四个方面。强调了按特殊性、权重、来源和顺序确定声明优先级,并探讨了内联样式、内部样式表和外部样式表之间的优先级关系。通过实例解析了LVHA链接样式顺序的原理。
摘要由CSDN通过智能技术生成

原文摘抄自 CSS权威指南(第三版):

第 1 部分:基础准备知识

每个合法的文档都会生成一个文档树,从而能根据元素的祖先,属性,兄弟元素等创建选择器来选择元素。有了这个结构树,选择器才能起作用,这也是CSS继承的核心。继承是从一个元素向其后代元素传递属性值所采用的机制。确定应当向一个元素应用哪些值时,用户代理不仅要考虑继承,还要考虑声明的特殊性,另外需要考虑声明本身的来源,这个过程称为层叠。

1.1 特殊性

每个选择器都有特殊性,对于每个规则,用户代理会计算选择器的特殊性,并将这个特殊性附加到规则中的各个声明。若一个元素有两个或多个冲突的属性声明,那么有最高特殊性的声明将胜出。
选择器的特殊性由选择器本身的组件确定。特殊性表述分为4个部分,如0,0,0,0。一个选择器的具体特殊性如下确定:
1)对于选择器给定的各个ID属性值,加0,1,0,0
2)对于选择器给定的各个类属性值,属性选择或伪类,加0,0,1,0
3)对于选择器给定的各个元素和伪元素,加0,0,0,1
4)结合符和通配选择器对特殊性没有任何贡献。其特殊性为0,0,0,0,但这与根本没有特殊性(继承没有特殊性)有本质区别。
5)一般地,第一个0是为内联样式表声明保留的,它比所有其他声明的特殊性都高。其特殊性为1,0,0,0。(为内联样式表声明保留一位是CSS2.1才加上的)

1.2 重要性

有时某个声明可能很重要,超过了所有其他声明,CSS2.1称之为重要声明,并允许在这些声明的结束分号之前插入!important来标志。
标志为!important的声明并没有特殊的特殊性值,
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值