层叠机制--比较特殊性

总体规则

每一个声明都有一个特殊性,当发生冲突时,特殊性高的会保留,低的会淘汰,一个声明的特殊性取决于规则适用范围的大小,规则适用范围越大特殊越低,适用范围越小特殊性越高(html范围最大)

特殊性从高到低 :行内样式>ID选择器>类选择器>元素选择器>通配符选择器

具体规则

在比较特殊性时,每一个冲突的声明,会生成4个数字(abcd)来比较特殊性,a越大特殊性越高,若a相同则比较b,以此类推。

a:若声明是行内样式,则为1否则为0

b:规则中ID选择器的个数

c;规则中类选择器、伪类选择器、和属性选择器个数

d:规则中元素选择器、伪元素个数

当计算选择器分组的时候,并集选择器要分开计算。

原文地址:https://www.cnblogs.com/James23/p/8848572.html

时间: 2024-10-10 06:46:51

层叠机制--比较特殊性的相关文章

css层叠机制说明

css通过建立与文档的关联而实施效果.文档结构重要性不言而喻,对于建立良好的内容索引.提高可维护性.较好的可访问性:另,利于css选择器选择.继承机制. 概要地讲,层叠机制是处理对文档上应用样式时解决该应用何种样式的解决方案,涉及到重要性.特殊性.来源.顺序的问题.下面分别说明. 概要      每条声明都是有特殊性的,其特殊性由选择器组件确定.用户代理会将特殊性赋予给每条声明.由于存在选择器分组和声明分组的情况,用户代理会将它们解组出来的.然后对应个元素可能会有多条规则.这时,若都是针对相同的

层叠机制

在css里,同一个样式的不同属性值应用于同一个标签则会产生声明冲突. 例如: 一旦出现声明冲突,浏览器会自动生成层叠机制. 层叠的过程 1.比较优先级 声明的优先级主要是看来源及重要性 来源:作者样式表.浏览器默认的样式表.用户样式表 按优先级从高到低:用户样式表>作者样式表>浏览器样式表 重要性:判断声明块里是否有!important,如果有,则表示是重要声明,将应用这个样式,反之为普通声明 当优先级为同级的时候则进入比较特殊性 2.比较特殊性 优先级:行内选择器>ID选择器>类

css层叠机制的比较、盒模型、继承规则

层叠机制 不同样式应用在同一标签时,会产生声明块冲突,这时就会自动触发层叠机制 1.比较优先权(平级时进行下一项比较) 2.比较特殊性(平级时进行下一项比较) 3.比较源层次 比较优先级 来源优先顺序:1.用户样式表 2.作者样式表 3.浏览器样式表 若属性值后跟上 !important ,则表示一条重要声明.否则为普通元素 例:color:red !impertant; 重要声明 比较特殊性(特指值.特指度) 每一个声明都有一个特殊性(适用范围越大,特殊性越低) 行内样式>ID选择器>类选择

CSS层叠机制

先简单提提CSS引入方式吧: 1. 行间样式:将样式属性作为元素的style属性的值2. 内联样式:在head标签内的style标签内写入样式3. 外部link引入:利用link标签引入外部的样式表4. import引入:在style标签内通过@import方法引入外部的样式表 层叠(cascading)机制 一个元素的某个特定的样式属性(比如a标签的字体大小)可能来自于行间的style属性,内联样式表,外部引入的样式表,浏览器自定义的样式(UA),或是继承自父元素的样式,但是最终选择其中一个来

Css的三大机制(特性):特殊性、继承、层叠详解

继承(Inheritance)是从一个元素向其后代元素传递属性值所采用的机制.确定应当向一个元素应用那些值时,用户代理(浏览器)不仅要考虑继承,还要考虑声明的特殊性(specificity),另外需要考虑声明本身的来源.这个过程就称为层叠(cascade).在此我们将讨论css这三种机制的原理和关联. 一.特殊性 考虑以下2对规则,假设每一对规则都匹配同样的元素: h1 {color: red; } body h1 { color:green;} h2.grape {color: purple;

[读书笔记] CSS权威指南2: 结构和层叠

层叠样式表中最基本的一个方面可能就是层叠——冲突的声明要通过这个层叠过程排序,并由此确定最终的文档表示.这个过程的核心是选择器及其相关声明的特殊性,以及继承机制. 特殊性 对于每个规则,用户代理会计算选择器的特殊性,并将这个特殊性附加到规则中的各个声明.如果一个元素有两个或多个冲突的属性声明,那么有最高特殊性的声明就会胜出. 选择器的特殊性由选择器本身的组件确定.特殊性值表述为4个部分,如:0,0,0,0.一个选择器的具体特殊性如下确定: 对于选择器中给定的各个ID属性值,加0,1,0,0. 对

CSS结构和层叠

每个合法的文档都会生成一个文档树,从而能根据元素的祖先,属性,兄弟元素等创建选择器来选择元素.有了这个结构树,选择器才能起作用,这也是CSS继承的核心.继承是从一个元素向其后代元素传递属性值所采用的机制.确定应当向一个元素应用哪些值时,用户代理不仅要考虑继承,还要考虑声明的特殊性,另外需要考虑声明本身的来源,这个过程称为层叠. 1.特殊性 每个选择器都有特殊性,对于每个规则,用户代理会计算选择器的特殊性,并将这个特殊性附加到规则中的各个声明.若一个元素有两个或多个冲突的属性声明,那么有最高特殊性

CSS层叠概述

什么是层叠: 层叠是一种机制,用于解决CSS声明冲突(多个相同的CSS声明属性,应用到一个元素上) 层叠的过程 层叠机制 比较优先级 比较特殊性 比较优先级 每一个声明都有一个优先级: 当发生冲突时,优先级高的会保留,优先级低的会被淘汰: 一个声明的优先级,与它的来源和重要性有关 解释来源 作者样式表 浏览器默认样式表 用户样式表 解释重要性 若属性值后面跟 !important,则表示一条重要声明:否则,表示普通声明. 示例: color:red;普通声明 color:red  !import

CSS学习摘要-层叠和继承

当有多个选择器作用在一个元素上时,哪个规则最终会应用到元素上? 其实这是通过层叠机制来控制的,这也和样式继承(元素从其父元素那里获得属性值)有关. 元素的最终样式可以在多个地方定义,它们以复杂的形式相互影响.这些复杂的相互作用使CSS变得非常强大,但也使其非常难于调试和理解. 层叠 CSS 是 Cascading Style Sheets 的缩写,这暗示层叠(cascade)的概念是很重要的.在最基本的层面上,它表明CSS规则的顺序很重要,但它比那更复杂.什么选择器在层叠中胜出取决于三个因素(这