CSS 属性值计算过程
目录
- 例子
- 1,确定声明值
- 2,层叠冲突
- 2.1,比较源重要性
- 2.2,比较优先级
- 2.3,比较源次序
- 3,使用继承
- 4,使用默认值
- 其他
例子
我们来举例说明<h1>
标签最终的样式:
<div><h1 class="red">标题一</h1>
</div>
样式表1——自定义样式
.red {color: salmon;font-size: 40px;
}h1 {font-size: 30px;
}div h1.red {font-size: 20px;font-size: 3em;
}div {background-color: rgba(0, 0, 0, 0.3);text-align: center;
}
样式表2——浏览器默认样式
一个 css 属性计算出的最终属性值,会经过下面4个步骤。
1,确定声明值
在所有样式表中,没有冲突的 css 样式就是最终样式。
可以看到,没有冲突的 css 样式有 color
display
margin-block-start
… 等等。
所以这一步得到确定的最终样式:
h1 {color: salmon;display: block;margin-block-start: 0.67em;margin-block-end: 0.67em;margin-inline-start: 0px;margin-inline-end: 0px;font-weight: bold;/* 其他 css 声明... */
}
2,层叠冲突
对样式表中,有冲突的声明使用层叠规则:
2.1,比较源重要性
重要性:自定义样式 > 浏览器默认样式。
所以font-size
的最终值会在自定义样式中确定:
.red {font-size: 40px;
}h1 {font-size: 30px;
}div h1.red {font-size: 20px;font-size: 3em;
}
这一步能够解释:为什么选择器权重低的自定义样式
* { margin: 0 }
,会覆盖浏览器默认的样式body { margin: 8px }
2.2,比较优先级
也就是选择器的权重。很明显这个选择器的权重最高:
div h1.red {font-size: 20px;font-size: 3em;
}
2.3,比较源次序
相同 css 样式,代码靠后的覆盖代码靠前的。
此时得到的最终样式:
h1 {font-size: 3em;color: salmon;display: block;margin-block-start: 0.67em;margin-block-end: 0.67em;margin-inline-start: 0px;margin-inline-end: 0px;font-weight: bold;/* 其他 css 声明... */
}
3,使用继承
对仍然没有值的样式,若可以继承,则继承父元素的样式。
可以看到自定义样式还有一条 css 声明
div {background-color: rgba(0, 0, 0, 0.3);text-align: center;
}
其中 background-color
不能继承,text-align
可以继承。所以得到继承样式:
h1 {text-align: center;font-size: 3em;color: salmon;display: block;margin-block-start: 0.67em;margin-block-end: 0.67em;margin-inline-start: 0px;margin-inline-end: 0px;font-weight: bold;/* 其他 css 声明... */
}
4,使用默认值
对仍然没有值的样式,使用默认值(预设值)。
比如 <h1>
的 background-color
默认值是 transparent
。
h1 {background-color: transparent;text-align: center;font-size: 3em;color: salmon;display: block;margin-block-start: 0.67em;margin-block-end: 0.67em;margin-inline-start: 0px;margin-inline-end: 0px;font-weight: bold;/* 其他 css 声明... */
}
此时已经确定了最终的样式,还需要通过最后一步单位转换,让浏览器能够识别。
尺寸相关的样式,会将相对单位转换为绝对单位,比如
em
rem
%
auto
都转为px
。
颜色都会转换 rgb()。red
转为rgb(255, 255, 255)
;transparent
转为rgba(0, 0, 0, 0)
其他
有了上面的规则,再看一个例子:
<div class="box"><a href="">超链接</a>
</div>
.box {color: red !important;
}
效果:
解释:
在第一步确定声明值中,<a>
的浏览器默认样式中是有 color
样式的。而且也没有对 <a>
设置自定义样式。所以直接就能确定 <a>
的 color
样式值。
所以,一般在项目中会对 <a>
设置如下自定义样式,来继承父级的 color
,方便后续的操作。
a {text-decoration: none;color: inherit; /* 表示继承 */
}
以上。
参考:渡一教育。
相关文章:
![](https://img-blog.csdnimg.cn/bf40c389577c42fab9f9f7c5ddebca5c.png)
CSS 属性值计算过程
目录 例子1,确定声明值2,层叠冲突2.1,比较源重要性2.2,比较优先级2.3,比较源次序 3,使用继承4,使用默认值其他 例子 我们来举例说明<h1> 标签最终的样式: <div><h1…...
![](https://img-blog.csdnimg.cn/ee14873fc53247fba55bafc55d32cc6b.png)
QT版权查询
文章目录 QT工具版权QT模块版权查询 根据条件自动筛选: Qt Features, Framework Essentials, Modules, Tools & Add-Ons QT工具版权 Licensing QT模块版权查询 在 All Modules 中点击进入每个模块,在详细内容中一般有Lisence相关内容。 Licens…...
![](https://img-blog.csdnimg.cn/bbe99cfeed054a62aa61d04c6ba0fce9.png)
【leetcode 力扣刷题】双指针///原地扩充线性表
双指针///原地扩充线性表 剑指 Offer 05. 替换空格定义一个新字符串扩充字符串,原地替换思考 剑指 Offer 05. 替换空格 题目链接:剑指 Offer 05. 替换空格 题目内容: 这是一道简单题,理解题意,就是将字符串s中的空格…...
![](https://img-blog.csdnimg.cn/3bac2af71e1f4f089e1747971f15f0d3.png)
第八章,帖子列表
8.1添加帖子列表 <script> import { mapState } from vuex . . . </script> computed: {...mapState([auth,user,articles]) }, <Message :sh...
![](https://www.ngui.cc/images/no-images.jpg)
netty与websockt实现聊天
配置websockt: import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration;/*** websocket配置*/ Data Configuration ConfigurationProperties(prefix &qu…...
![](https://img-blog.csdnimg.cn/img_convert/0f7ed5d91fdef93527ec56c58f1cc594.png)
21.2 CSS 三大特性与页面布局
1. 开发者工具修改样式 使用开发者工具修改样式, 操作步骤如下: * 1. 打开开发者工具: 在浏览器中右键点击页面, 然后选择检查或者使用快捷键(一般是 F12 或者 CtrlShiftI)来打开开发者工具.* 2. 打开样式编辑器: 在开发者工具中, 找到选项卡或面板, 一般是Elements或者Elemen…...
![](https://img-blog.csdnimg.cn/85d8785574d54cd7bb2cbf76b4a02cbf.png)
MySQL 特殊语法时间格式以及Greadb连接
一、时间语法 DATE_FORMAT和to_char() select to_char(now(),%Y-%m-%d %H:%i:%s) from dual; select DATE_FORMAT(now(),%Y-%m-%d %H:%i:%s) from dual; 2.to_date() 和STR_TO_DATE(#{date},%Y-%m-%d ) select to_date(now(),yyyy-mm-dd hh24:mi:ss) from dual;...
![](https://img-blog.csdnimg.cn/641ea5d48a124fdfae2645f0989aecea.png)
Python(.pyc)反编译:pycdc工具安装与使用
本文将介绍如何将python的.pyc文件反编译成源码,以便我们对源码的学习与改进。pycdc工具安装 下载地址: 1、Github地址:https://github.com/zrax/pycdc ,下载后需要使用CMake进行编译。 2、已下载好及编译好的地址:ht…...
![](https://img-blog.csdnimg.cn/img_convert/d732d95bbb5cc67efcfc8e217488f4e5.jpeg)
山西电力市场日前价格预测【2023-08-28】
日前价格预测 预测明日(2023-08-28)山西电力市场全天平均日前电价为319.70元/MWh。其中,最高日前电价为371.80元/MWh,预计出现在19: 15。最低日前电价为278.59元/MWh,预计出现在13: 00。 价差方向预测 1: …...
![](https://img-blog.csdnimg.cn/dd1bf75284594006b3e610989f44f6f9.png)
python3/pip3 SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
环境: mac os 背景: 电脑之前安装的是python3.9 , 现在升级到python3.10。 从python官网下载macos版本的python3.10 pkg。 双击安装。 程序使用aiohttp访问ebay 。 出错: aiohttp.client_exceptions.ClientConnectorCertifi…...
![](https://www.ngui.cc/images/no-images.jpg)
Python中的迭代器与生成器
文章目录 1、迭代器2、生成器3、列表推导式和生成器表达式4、enumerate() 在Python中,迭代器(Iterator)和生成器(Generator)是两种用于处理可迭代对象的重要工具。而可迭代对象包括列表,元组,字…...
![](https://img-blog.csdnimg.cn/c7e93be5c6b74368860958c839c89813.png)
简单着色器编写(下)
函数部分介绍完了,最后来介绍一下main函数中的部分。 std::string vertexShader "#version 330 core\n" "\n" "layout(location0)in vec4 position;" "\n" "void main()\n" "{\n&…...
![](https://www.ngui.cc/images/no-images.jpg)
go并发编程基础
go并发编程 1waitgroup WaitGroup就是等待所有的goroutine全部执行完毕,add方式和Down方法要配套使用 package mainimport ("fmt""sync" )func main() {var wq sync.WaitGroupwq.Add(100) //监控多少个goroutine执行结束for i: 0;i<100;…...
![](https://www.ngui.cc/images/no-images.jpg)
PHP之 导入excel表格时,获取日期时间变成浮点数
读取到的时间 float(0.20833333333333) 原格式 15:00:00 代码 if (Request::isPost()) {$file_url input(upfile); // 本地上传文件地址// 读取文件内容$local_file_url __dir__./../../../public.$file_url;// $spreadsheet new Spreadsheet();// $sheet $spreadsheet-…...
![](https://www.ngui.cc/images/no-images.jpg)
学习 Java 报表技术导入 Maven 依赖出错:jacob 无法下载、jasperreports 依赖错误
发生缘由 最近在做一个可视化项目,用到了 Java 报表技术。在跟着「黑马」课程导入 pom.xml 文件的时候提示下载依赖错误。 com.jacob 包无法下载Failed to read artifact descriptor for com.lowagie:itext:jar:2.1.7.js6 运行环境 电脑系统版本:Win…...
![](https://www.ngui.cc/images/no-images.jpg)
力扣-哈希-最长连续序列
题目 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: **输入:**nums [100,4,200,1,3,2] **输出&a…...
![](https://img-blog.csdnimg.cn/c7328153ff754731ae83526c887b111d.png)
Java线程 - 详解(1)
一,创建线程 方法一:继承Thread类 class MyThread extends Thread{Overridepublic void run() {System.out.println("线程1");} }public class Test {public static void main(String[] args) {MyThread myThread new MyThread();myThread.…...
![](https://www.ngui.cc/images/no-images.jpg)
结构体-C语言(初阶)
目录 一、结构体声明 1.1 结构概念 1.2 结构声明 1.3 结构成员的类型 1.4 结构体变量的定义和初始化 二、结构体成员的访问 2.1 结构体变量访问成员 2.2 结构体指针访问指向变量的成员 三、结构体传参 一、结构体声明 1.1 结构概念 结构是一些值的集合,这些值称为…...
![](https://img-blog.csdnimg.cn/6fccf7d076b244b9ab06cc613d17dbd5.png)
【网络】HTTPS的加密
目录 第一组,非对称加密第二组,非对称加密第三组,对称加密证书签名 HTTPS使用的是非对称加密加对称加密的方案 (非对称加密:公钥加/解密,私钥解/加密) (对称加密:一组对称…...
![](https://img-blog.csdnimg.cn/a1406abb71cb4e528d76401a800724f8.png)
Nacos安装指南
Nacos安装指南 1.Windows安装 开发阶段采用单机安装即可。 1.1.下载安装包 在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码: GitHub主页:https://github.com/alibaba/nacos GitHub的Release下载…...
![](https://img-blog.csdnimg.cn/44d3bb555b74467eb9d71b16bf7644c9.png)
java-Optional 类详解
目录 前言 Optional的构造方法 Optional的相关方法介绍 isPresent用法: get用法: filter用法: orElse用法: orElseGet用法 orElseThrow用法 map用法 flatMap用法: 前言 Optional 类是java8的新特性࿰…...
![](https://img-blog.csdnimg.cn/img_convert/b02b7441496eeba0bbbb970e0836f4b7.jpeg)
sql数据库怎么备份,sql 实时备份
在当今互联网时代,数据已经成为企业的核心资产。然而,数据的安全性和完整性面临硬件问题、软件故障、人工操作错误等各种威胁。为了保证数据的安全,实时备份已经成为公司必须采取的重要措施之一。下面我们就重点介绍SQL实时备份的重要实施方法…...
![](https://img-blog.csdnimg.cn/9a8084bf00404996b03c737e362e83b6.png)
RK3399平台开发系列讲解(存储篇)Linux 存储系统的 I/O 栈
平台内核版本安卓版本RK3399Linux4.4Android7.1🚀返回专栏总目录 文章目录 一、Linux 存储系统全景二、Linux 存储系统的缓存沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍 Linux 存储系统的 I/O 原理。 一、Linux 存储系统全景 我们可以把 Linux 存储系…...
![](https://img-blog.csdnimg.cn/9ac114e5c67d4fc8849ad189d93e4c59.png)
Java“牵手”天猫淘口令转换API接口数据,天猫API接口申请指南
天猫平台商品淘口令接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取天猫商品的标题、价格、库存、商品快递费用,宝贝ID,发货地,区域ID,快递费用,月销量、总销量、库存、详情描…...
![](https://img-blog.csdnimg.cn/3ab7c0e1e3f54ef88172e137283e8a4c.png)
postgresql 条件表达式
postgresql 条件表达式 简单CASE表达式搜索CASE表达式缩写函数nullif函数示例 coalesce函数 总结 简单CASE表达式 语法如下 case 表达式when 值1 then 结果1when 值2 then 结果2else 默认值 end;select e.first_name , e.last_name , case e.department_id when 90 then 管…...
![](https://img-blog.csdnimg.cn/d57e20fce0634237913dd1dfaacaa708.png)
姜启源数学模型第五版第五章火箭发射升空
姜启源数学模型第五版第五章例题内容复现 数学建模背景1.学习内容火箭发射升空理论知识 2.例题3.问题分析不考虑空气阻力的模型考虑空气阻力的模型 4.代码内容复现不考虑空气阻力考虑空气阻力模型 数学建模背景 首先先简单的介绍数学建模是一个怎么样的内容 数学建模是一种将数…...
![](https://img-blog.csdnimg.cn/eb4570e0ad894d499be4c0fbad2aa5d5.png)
局域网中电脑共享文件给手机
学习资源: 局域网共享:这样设置,你可以轻松拷贝任何电脑的文件。_哔哩哔哩_bilibili 可以实现什么效果? 连接同一个WIFI,电脑端为服务端,提供共享文件,手机是客户端,可以读取服务端…...
![](https://www.ngui.cc/images/no-images.jpg)
线段树练习
P1198 [JSOI2008] 最大数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) // Problem: P1198 [JSOI2008] 最大数 // Contest: Luogu // URL: https://www.luogu.com.cn/problem/P1198 // Memory Limit: 128 MB // Time Limit: 1000 ms // // Powered by CP Editor (https://c…...
![](https://www.ngui.cc/images/no-images.jpg)
Mybatis映射.动态sql.分页
介绍: 动态SQL是MyBatis提供的一种动态生成SQL语句的方式,可以根据不同的条件生成不同的SQL语句,从而实现更加灵活的查询和操作。 在MyBatis的映射文件中,可以通过使用if、choose、when、otherwise、foreach等标签来实现动态SQL…...
![](https://www.ngui.cc/images/no-images.jpg)
springboot向resources下写文件的两种方式
文章目录 方式一:方式二: 方式一: import java.io.File; import java.io.FileWriter; import java.io.IOException;public class WriterFileUtils {private static final String prefix "classpath:";public static void writeFi…...
![](/images/no-images.jpg)
怎样制作购物网站 微信转发/谷歌seo排名优化
如果车票开售的第一时间没有抢到票也不要着急,旅客还有5个“捡漏”机会: 1、开售30分钟后,如有旅客未及时付款,车票会重新返回系统发售。 2、开车前15天,是退票高峰期。 3、开车前48小时和24小时,系统会放出…...
![](/images/no-images.jpg)
网站建设要注意/网络营销和网络推广
上一篇讲到游戏运作的原理是非常简单的,实现一个五子棋很可能只需要使用操作系统提供的原生开发环境,简单的做一些代码实现即可完成,我自己在大学的时候就找到了一个一步一步教你使用Windows API开发一个五子棋游戏的教程,需要用到的也只需要安装一个visual studio顺便安装…...
![](/images/no-images.jpg)
做网站如何购买服务器/站内营销推广方案
一.小产权房签订合同注意事项 1.小产权房签订合同注意事项:应写明双方和小产权房的基本信息;价款的确定方式及总价款、付款方式、付款时间;交付使用条件和日期;质量标准承诺;配套基础设施和公共设施的交付承诺和责任&…...
![](/images/no-images.jpg)
我想做网站 怎么做呢/优化大师免费安装下载
外接键盘时,如果没反应,可重启手机,再接就可以了。用便签应用测试 OK。五笔输入法:触宝输入法装好后,五笔 要另下载个包,还有手写也一样。插上键盘就可以输入中文了。很简单。 经过测试。noppoo 84 mini 双…...
![](/images/no-images.jpg)
小说类网站功能建设/关键词排名代做
背景:我想知道如何实现高级排序函数,我可以将它作为元组元素传递给python‘sorted’函数的key参数.这是一个描述我想做的事情的例子:class Book:def __init__(self, name, author, language, cost):self.name nameself.author authorself.languagelang…...
![](/images/no-images.jpg)
四川网站建设 招标/太原关键词排名提升
1-6 字符串 在Go语言里面,字符串属于不可变数值类型,也就是是当变量的值发生改变时,其内存地址发生改变。在Go语言内部字符串是使用指针指向UTF-8数组。 当然,与不可变数值类型相反,可变数值类型的意思就是࿰…...