概述

层叠就是对样式的层叠。是某种样式在样式表中逐层叠加的过程。让浏览器对某个标签特定属性值的多个来源,最终确定使用那个值。层叠是整个CSS的核心机制。

HTML文档样式的来源

1.浏览器默认样式,每个浏览器本身就有一套默认的样式

2.用户样式,这对于视障用户很重要

3.作者样式。也就是Web开发者设计的样式

浏览器层叠各个样式的顺序:

浏览器会按照上面的顺序,依次检查每个样式的来源,并更新相关标签的设定,当整个检查更新结束后,再将每个标签以最终设定的样式显示出来

层叠规则

规则一:找到应用给每个元素和属性的所有声明。

检查每一条CSS规则,并标记出受到影响的HTML标签

规则二:按照顺序和权重排序

浏览器依次检查5个来源,匹配并且更新有定义的值,声明也可以通过!important增加权重,例如

a{font-size: 30px;color: red !important;},这里a的color值会始终被设置成red。而忽略5个样式表

规则三:计算选择符特指度进行排序

特指度(specificity)即一条规则有多么明确,选择符的特指度由它所包含多少标签、类名和id决定

规则四:顺序决定权重

在特指度相同的情况下,后声明的规则胜出

补充: CSS特指度的计算规则

CSS选择符的特指度,由它选择符中包含标签的多少、class和id决定

特指度的计算

计分公式:“ I-C-E ” 三个字母用“ - ”分隔符组成

①选择符中有一个id,  "  I  " 位置加1

②选择符中有一个class,“C”  位置加1

③选择符中有一个标签(元素),“ E ” 位置加1

④得到一个“三位数”,这并非真正意义上的三位数

按选择符照特指度计算规则,下面是特指计算的例子

p{font-size:20px;}                                         特指度001
p.largetext{font-size:30px;} 特指度011
p#largetext{font-size: 40px;} 特指度101
body p#largetext{font-size:50px;} 特指度102
body p#largetext ul.mylist{font-size:60px;} 特指度113
body p#largetext ul.mylist li{font-size:70px;} 特指度114

查理版简单层叠要点—《CSS设计指南》一书

规则一:包含id的选择符胜过包含class选择符,包含class选择符胜过包含标签的选择符

规则二:如果几个不同来源样式都为同一标签的同一属性定义了样式,行内样式胜过嵌入样式,嵌入样式胜过链接样式,在链接样式中,如果特指度相同,后声明胜过先声明

规则三:手动设定样式胜过继承样式

三.CSS层叠机制的更多相关文章

  1. css考核点整理(二)-css层叠机制

    css层叠机制 外边距重叠就是margin-collapse. 在CSS当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距.这种合并外边距的方式被称为折叠,并且因 ...

  2. 关于CSS层叠机制

    谈到层叠机制,首先我们要知道什么是声明冲突. 声明冲突有三个条件:①多个选择器选中同一个元素:②声明块里的属性相同:③属性的属性值不同.同时满足这三点时就会产生声明冲突.比如下图html代码: < ...

  3. css层叠机制说明

    css通过建立与文档的关联而实施效果.文档结构重要性不言而喻,对于建立良好的内容索引.提高可维护性.较好的可访问性:另,利于css选择器选择.继承机制. 概要地讲,层叠机制是处理对文档上应用样式时解决 ...

  4. CSS引用方式及样式层叠机制

    CSS引用方式有3种,三种分别为:外部引入.内部引入.行内样式,下面一 一进行介绍. 1.外部引入:CSS代码在一个独立的文件中,HTML通过Link标签引入到页面. 代码格式:<link re ...

  5. CSS中的样式层叠机制Cascade

    CSS中的样式层叠机制Cascade 一.样式冲突   样式冲突是CSS渲染过程要解决的一个关键问题,样式冲突主要由两个原因造成: 元素包含了不同对象所赋予的样式:浏览器.用户.作者.其中,浏览器样式 ...

  6. 【css笔记】css中的盒模型和三种定位机制(固定定位,绝对定位,浮动)

    html页面上的元素都可以看成是框组成的,框通过三种定位机制排列在一起就过程了我们看到的页面.而框就是盒模型. 盒模型 1.页面上的每个元素可以看成一个矩形框,每个框由元素的内容,内边距,边框和外边距 ...

  7. 层叠机制和继承的概念以及CSS中选择器的优先级

    层叠机制: 一个元素的某个特定的样式属性可能来自行间的style属性.内联样式表或者外部引入的样式表,以及浏览器自定义的样式,还有就是继承自父元素的样式,但是最终只会选择其中的某一个来表示,这个选择的 ...

  8. css层叠规则(层叠样式表)

    CSS层叠规则: 1.找出所有相关的规则,这些规则都包含与一个给定元素匹配的选择器. 2.按权重(!important)和来源对应用到给定元素的所有声明进行排序. 3.按特殊性对应用到给定元素的所有声 ...

  9. CSS层叠

    前面的话 层叠样式表CSS最基本的一个特性就是层叠.冲突的声明通过层叠进行排序,由此确定最终的文档表示.而这个过程的核心就是选择器及其相关声明的特殊性.重要性.来源及继承机制.本文将详细介绍CSS层叠 ...

随机推荐

  1. 【M9】利用destructors避免泄漏资源

    1.在堆上获取的动态资源,用户忘记delete,或者由于异常导致没有没执行到delete,都会造成资源泄漏. 2.我们知道,栈上的对象,离开作用域,必定要执行析构方法.即使抛出异常,会堆栈回滚,保证已 ...

  2. c语言write与python的struct模块交互

    以下讲的都是用二进制形式打开文件.网上有很多struct模块的文章,下面是我做的小实验. 1.对于c里面的fwrite写入一个单字节,写的就是它的二进制.如3,写入文件就是二进制0x03,它并不是3的 ...

  3. [Angular2 Router] Configuring a Home Route and Fallback Route - Learn An Essential Routing Concept

    In this tutorial we are going to learn how to configure the Angular 2 router to cover some commonly ...

  4. VirtualBox从USB设备(PE)启动

    cmd中执行 VBoxManage internalcommands createrawvmdk -filename E:\usb.vmdk -rawdisk \\.\PhysicalDrive1 - ...

  5. 给指针malloc分配空间后就等于数组吗?

    首先回答这个的问题:严格的说不等于数组,但是可以认为它是个数组一样的使用而不产生任何问题.不过既然这样,那它应该算是个数组吧.所以,一般我们都用“动态数组”这种名字来称呼这种东西. 要讲清楚这个东西, ...

  6. Java核心技术卷二部分笔记

    第1章 流与文件 1.2 文本输入与输出 第3章 网络 3.3 可中断套接字 第4章 数据库编程 4.5.2 读写LOB 4.6 可滚动和可更新的结果集 4.8 元数据 第6章 高级Swing 6.1 ...

  7. OSG的HUD抬头文字显示

    原文:http://blog.csdn.net/tmljs1988/article/details/7562926 可以运行 1.       HUD流程图: 完整源代码如下: /*OSG中的HUD, ...

  8. java中静态的代码块,静态变量,静态方法

    简单了解一下java虚拟机--jvm几个内存区域: 方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息.常量.静态变量以及方法代码的内存区域, 常量池:常量池是方法区的一部分,主要用来存放 ...

  9. 关于BP算法在DNN中本质问题的几点随笔 [原创 by 白明] 微信号matthew-bai

       随着deep learning的火爆,神经网络(NN)被大家广泛研究使用.但是大部分RD对BP在NN中本质不甚清楚,对于为什这么使用以及国外大牛们是什么原因会想到用dropout/sigmoid ...

  10. iOS retain、strong、weak、assign

    iOS retain.strong.weak.assign strong与weak是由ARC新引入的对象变量属性xcode 4.2(ios sdk4.3和以下版本)和之前的版本使用的是retain和a ...