css继承属性有哪些(CSS特殊性、继承与层叠)
css继承属性有哪些
CSS特殊性、继承与层叠一、特殊性规则
选择器的特殊性由选择器本身的组件确定;特殊性由四个部分组成,其初始值为0,0,0,0。
1. 对于选择器中的每一个id,加0,1,0,0;
2. 对于选择器中的每一个类、伪类、属性选择,加0,0,1,0;
3. 对于选择器中的每一个元素、伪元素,加0,0,0,1;
4. 结合符与通配符对于选择器的特殊性没有任何贡献。
注意:
1. 0,0,1,0的特殊性比0,0,0,13的特殊性更高。
2. 通配符 * 的特殊性为0,0,0,0,它是有特殊性的;结合符(比如h1+p中的“+”)根本没有特殊性;继承而来的样式也没有特殊性。
请看如下代码:
- <head>
- <style>
- *{
- color:red;
- }
- body{
- color:cyan;
- }
- </style>
- </head>
- <body>
- <p>Whatkindofcolorthisparawillbe?</p>
- </body>
页面显示如下:
关于通配符 * :由于 * 适用于所有元素,而且有0特殊性,往往会在不经意间造成继承无法实现的情况,应该尽量避免使用 * 选择器。
3. 指定id属性的属性选择器与id选择器有本质区别,比如:
- <head>
- <style>
- li[id="test"]p{
- color:red;
- }
- #testp{
- color:cyan;
- }
- </style>
- </head>
- <body>
- <liid="test">
- <p>Whatkindofcolorthisparawillbe?</p>
- </li>
- </body>
页面效果:
4. 行内样式的特殊性最高,为1,0,0,0。
5. 标记为!important的声明被称为重要声明,它没有特殊性,不过要与非重要声明分开考虑。
具体而言:非重要声明分为一组,它们之间的冲突使用特殊性解决;重要声明分为一组,它们之间的冲突内部解决;重要声明总是比非重要声明优先。
二、继承
1. 继承没有任何特殊性,记住这一点往往能明白很多问题。
请看如下代码:
- <head>
- <style>
- p{
- color:red;
- }
- </style>
- </head>
- <body>
- <p>Whatkindofcolorthis<ahref="#">link</a>willbe?</p>
- </body>
页面效果:
为什么设置了<p>元素的颜色为红色,<a>元素的颜色却是蓝色?
这并不是因为<a>元素不继承父元素的颜色(原谅我之前就是这么认为的),而是因为<a>元素继承了<p>元素的颜色,但是这个继承来的样式根本没有特殊性,然而浏览器默认样式中对<a>元素设置了样式,很明显浏览器默认样式的特殊性更高,于是<a>元素就按照浏览器默认样式显示。
2. 关于CSS中的继承:一般而言,只能子元素继承父元素的样式,也就是说样式在DOM中只能向下传递,不能向上;但是有一个例外,应用到body元素的背景样式可以向上传递到html元素,相应地可以定义其画布。
三、层叠
层叠规则:
1. 按权重排序。读者重要声明>作者重要声明>作者一般声明>读者一般声明>用户代理声明。
2. 权重相同的情况下,按照特殊性排序,特殊性越高的胜出。
3. 特殊性相同的情况下,按照样式表中的顺序排序,后出现的胜出。
btw,正是因为这个规则,才会使用LoVe-HA的顺序声明链接样式(LoVe-HA 依次为 :link; :visited; :hover; :active)。
- css 最高层级(浅谈CSS 权值 层叠 重要性!important)
- html5标签图片(HTML5图片层叠的实现示例)
- CSS中z-index层叠顺序
- css中有几种样式表(深入浅出学习层叠样式表--css推荐)
- css继承属性有哪些(CSS特殊性、继承与层叠)
- 苹果15价格(苹果15价格512g官网)
- 春节放假几天(春节放假几天2023法定几天)
- 今天 3月13日,31年前,一个英雄少年感动了中国(今天3月13日31年前)
- 你好,新成理人丨成都理工大学2019级新生开学典礼隆重举行(新成理人丨成都理工大学2019级新生开学典礼隆重举行)
- 这部民警编演的红色话剧,讲述了一个不断追寻的故事(这部民警编演的红色话剧)
- 日本菜有什么好吃(日本菜有什么好吃的做法)
热门推荐
- mysql查询很慢怎么回事(MySQL Like模糊查询速度太慢如何解决)
- tomcat解决乱码(解决tomcat 静态页面html中文乱码的解决终极篇)
- mybatis测试出现空指针(Mybatis非配置原因,导致SqlSession was not registered for synchronization异常)
- php实现导航地图(php根据地址获取百度地图经纬度的实例方法)
- python模块学习之random模块(详解Python基础random模块随机数的生成)
- css五种使用方法(CSS 的加载及加载顺序简介)
- ftp管理用户权限(FTP 分类账户设置经验谈)
- mongodb索引的优化
- php怎么实现动态配置(php实现映射操作实例详解)
- php无法读取txt文件(php写入txt乱码的解决方法)