CSS三大特性继承性、层叠性和优先级详解


Posted in HTML / CSS onJanuary 18, 2022

1.css属性的继承

CSS中有些属性是可继承的,何为属性的继承?

  • 一个元素如果没有设置某些属性的值,就会跟随(继承)父元素的属性值。当然,一个元素如果有设置自己的属性值,就会使用自己的。
  • 比如color、font-size等属性是可以继承的,怎样查看某些属性是继承父元素的,还是自己设置的呢?(可通过浏览器调试工具查看)

示例代码如下:给父级div设置字体样式;

.box {
  color: red;
  font-size: 16px;
}
<div class="box">
  <span>我是span元素</span>
</div>

浏览器运行结果:span元素内容字体颜色变成红色、大小变成16px,并且标识样式是继承于div.box

CSS三大特性继承性、层叠性和优先级详解

  • 那么哪些样式可以继承哪些样式不能继承,具体属性是否能继承,可以查阅W3C官网或者MDN

以MDN为例:输入需要查找的属性(color是可以继承的、width是不能继承的)

CSS三大特性继承性、层叠性和优先级详解

CSS三大特性继承性、层叠性和优先级详解

  • 不能继承的属性可以使用inherit属性值强制继承。

注意:css属性继承的是计算值,并不是编写属性时的指定值(也就是字面值)。

示例代码:

.box1 {
  width: 1000px;
  height: 150px;
  background-color: #f00;
}
.box2 {
  width: 50%; /* 500px */
  height: 100px;
  background-color: #00f;
}
.box3 {
  width: inherit; /* 500px */
  height: 50px;
  background-color: #0f0;
}

<div class="box1">
  <div class="box2">
    <div class="box3"></div>
  </div>
</div>

运行结果:div.box3是直接继承div.box2计算后的500px

CSS三大特性继承性、层叠性和优先级详解

2.css属性的层叠

CSS全称 (Cascading Style Sheets,层叠样式表),它允许多个相同名字的css属性层叠在同一个元素上,层叠最后结果,只有一个css属性会生效。

  • 浏览器的调试工具非常清晰的显示哪个css属性最终生效。

示例代码:

#box { color: red; }
.container { color: green; }
div { color: blue; }

<div id="box" class="container">div元素内容</div>

浏览器运行结果:最终id设置的属性生效;

CSS三大特性继承性、层叠性和优先级详解

  • 具体哪个css属性生效,涉及到css属性所处环境的优先级的高低。

3.css属性的优先级

为什么有时编写的css属性没有产生对应效果,很可能是因为以下原因:

  • 选择器的优先级太低;
  • 选择器没有选中对应的元素;
  • css属性使用不正确;
    • 元素不支持该css属性,比如span默认不支持width和height;
    • 浏览器版本不兼容;
    • 被同类css属性覆盖,比如font覆盖font-size;

(1)解决方案:可以充分利用浏览器的调试工具进行调试和查错,也可借助css选择器的权重值来解决。

(2)为了方便css属性的优先级,可以给css属性所处的环境定义一个权值(权重)

  • !important:10000;
  • 内联样式:1000;
  • id选择器:100;
  • 类选择器、属性选择器、伪类:10;
  • 元素选择器、伪元素:1;
  • 通配符:0;

(3)比较优先级的严谨方法:

  • 从权值最大的开始比较每一种权值的数量多少,数量多的则优先级高;
  • 如果数量相同,比较下一个较小的权值,以此类推;
  • 如果所有权值比较完毕后都发现数量相同,就采取“就近原则”;

(4)也可使用下面的表格来衡量优先级高低,使用一个四位的字串表示,值从左到右,左面的最大,一级大于一级,数位之间没有进制,级别之间不可超越:

选择器 选择器权重
继承、* 0, 0, 0, 0
元素选择器 0, 0, 0, 1
类选择器、伪类选择器 0, 0, 1, 0
id选择器 0, 1, 0, 0
内联样式 1, 0, 0, 0
!important ∞(无穷大)

到此这篇关于CSS三大特性继承性、层叠性和优先级详解的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

 
HTML / CSS 相关文章推荐
一款CSS3实现多功能下拉菜单(带分享按)的教程
Nov 05 HTML / CSS
使用CSS3和Checkbox实现JQuery的一些效果
Aug 03 HTML / CSS
纯CSS3打造属于自己的“小黄人”
Mar 14 HTML / CSS
CSS3实现背景透明文字不透明的示例代码
Jun 25 HTML / CSS
CSS实现聊天气泡效果
Apr 26 HTML / CSS
canvas基础之图形验证码的示例
Jan 02 HTML / CSS
HTML5 Canvas渐进填充与透明实现图像的Mask效果
Jul 11 HTML / CSS
多视角3D可旋转的HTML5 Logo动画
Mar 02 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
Sep 20 HTML / CSS
详解html5 canvas 微信海报分享(个人爬坑)
Jan 12 HTML / CSS
HTML5中使用json对象的实例代码
Sep 10 HTML / CSS
如何解决flex文本溢出问题小结
Jul 15 HTML / CSS
使用CSS设置滚动条样式
在CSS中使用when/else的方法
Jan 18 #HTML / CSS
CSS使用伪类控制边框长度的方法
浅谈css实现背景颜色半透明的两种方法
Dec 06 #HTML / CSS
HTML怎么设置下划线?html文字加下划线方法
Dec 06 #HTML / CSS
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
DIV CSS实现网页背景半透明效果
You might like
PHP调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
2013/06/08 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
php readfile下载大文件失败的解决方法
2017/05/22 PHP
js 省地市级联选择
2010/02/07 Javascript
jQuery模拟物体自由落体运动(附演示与demo源码下载)
2016/01/21 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
2019/03/22 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
python进程管理工具supervisor使用实例
2014/09/17 Python
python基于右递归解决八皇后问题的方法
2015/05/25 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
Python之字典添加元素的几种方法
2020/09/30 Python
CSS3实现任意图片lowpoly动画效果实例
2017/05/11 HTML / CSS
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
工程造价专业大专生求职信
2013/10/06 职场文书
网站编辑求职信
2013/10/17 职场文书
《颐和园》教学反思
2014/02/26 职场文书
超市促销活动方案
2014/03/05 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
大学生党员个人总结
2015/02/13 职场文书
表扬信格式模板
2015/05/05 职场文书
一个独生女的故事观后感
2015/06/04 职场文书