CSS-0_2 CSS和继承(inherit initial)

文章目录

  • CSS的层叠和继承
    • inherit
    • initial
      • 很多你以为的样式初始值,其实是用户代理样式
    • 碎碎念

CSS的层叠和继承

在上一篇 CSS和层叠、样式优先级 里已经讲过了层叠和优先级之间的关系,但是在CSS中的层叠除了体现在争抢露脸机会的优先级之外,还体现在属性的延续性上


就像这样:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div class="blue_word"><h1 id="h">我是div1中的文字</h1>
</div>
</body>
</html><style>.blue_word {color: blue;}
</style>

在这里插入图片描述

道友你有没有想过,为什么明明被选中的是外层元素的类选择器,可内部的元素的字体颜色也跟着变了?

事实上这是CSS中的一个性质,我们管他叫继承。对,css中的样式继承

在一些属性没有指明属性值的情况下,css会自动让他应用父元素的对应样式。但并不是所有的属性都会被继承,通常来说只有跟文本有关系的,比如 font-*,color,text-* 等等。以及一些列表相关的属性会被继承

盒模型有关的内容,比如margin、padding、border之类的属性则不会,也不应该被继承

但是如果你硬要让一个不会被继承的属性去继承,那可以使用关键字——inherit



inherit

inherit,本身就是继承的意思,这个关键字简单明了。使用这个关键字后,所指定属性的属性值将会和父元素一致

最常见的用法,是用在统一那些被用户代理样式带偏的特殊标识,比如标签

就像这样:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body><p>我是p标签里的内容:<a href="#">我是a标签里面的内容</a></p></body>
</html><style>p{color: green;}p a{text-decoration: none;}
</style>

在这里插入图片描述


我明明希望整个p标签里面的文字都是绿色的,但是由于a标签的用户代理样式为他指定了color属性,所以他不会继承标签的color样式(这不是因为优先级的问题)。我希望a标签里面的字体颜色跟着p标签走,这样我改颜色的时候就不用改两个地方


所以这时候我们不会这样做:

p,p a{color: green;
}
p a{text-decoration: none;
}

而是会这样做:

p{color: green;
}
p a{color:inherit;/*继承p的color属性*/text-decoration: none;
}

他们的效果都是一样的:

在这里插入图片描述



initial

当你希望把某个属性还原到最原始的状态时,可以使用initial关键字

比如说,还是用a标签举例,如果上例变成这样:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<p>我是p标签里的内容:<a href="#">我是a标签里面的内容</a><br><a href="#" id="a2">我是第二个a标签里面的内容</a>
</p>
</body>
</html><style>p{color: green;}p a{color:inherit;text-decoration: none;}#a2{color: initial;}
</style>

前面的部分没有改,但是我们新加入了id值为a2的a标签,并把她的color值初始化(因为id选择器优先级更高,所以这个initial是一定生效的)。那么问题来了,这时候a2的文字应该是什么颜色呢?


我相信会有道友回答蓝色,但事实上,他是黑的:

在这里插入图片描述

为什么会回答蓝色,因为a标签不经过任何处理的情况下就是蓝色字体啊

可你想过没有,a标签的蓝色字体是用户代理样式给他的,而不是说a标签本身就是蓝色字体


initial关键字的作用,是把对应的属性值重置,而不是重置成用户代理样式

他是跟着具体属性走的,跟任何标签都没有关系,color属性的初始值,就是黑色


很多你以为的样式初始值,其实是用户代理样式

如果你对initial的这一特性不了解,那就会对他的一些行为觉得很诡异,比如这个:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div>A</div>
</body>
</html><style>div{background: skyblue;}
</style>

在这里插入图片描述

理论上来说,就算我把下面的样式改成这样:

div{display: initial;background: skyblue;
}

我得到的页面也应该是一样的


可结果让人大跌眼镜:

在这里插入图片描述

这看起来就好像她变成了一个 行内元素 一样!


是的,他就是变成了一个行内元素,根据 MDN 的说明,display这个属性的初始值应该是:inline,哪怕是div也不例外

在这里插入图片描述

——https://developer.mozilla.org/zh-CN/docs/Web/CSS/display

你可以理解成 initial 这个关键字针对的是当前这种属性,跟元素无关。事实上不同的标签对css指定样式来说确实没有什么关系,他们对css来说只在标签选择器里起作用而已



碎碎念

  • css的一些属性是可以自动继承的,但是这些属性大都是文本相关和列表相关的属性
  • 你可以通过inherit关键字强制让某个属性继承父元素的值
  • 你可以通过initial关键字把指定的属性重置,这种重置不是重置成用户代理样式





万分感谢您看完这篇文章,如果您喜欢这篇文章,欢迎点赞、收藏。还可以通过专栏,查看更多与【CSS笔记】有关的内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/856947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python自动化(2)——键盘模拟

Python自动化(2)——键盘模拟 前台键盘模拟 前台键盘模拟和后台键盘模拟的区别在于&#xff0c;是否绑定窗口。即前台模拟是只模拟键盘操作&#xff0c;例如按下按键a&#xff0c;如果聚焦在一个文本文档的编辑区&#xff0c;那么就会把这个a输入进去。但如果是聚焦到了浏览器…

等保测评--第一级通用要求2

安全管理制度 管理 制 度 应建立日常管理活动中常用的安全管理制度 安全管理机构 岗位设置 应设立系统管理员等岗位,并定义各个工作岗位的职责 人员配备 应配备一定数量的系统管理员 授权和审批 应根据各个部门和岗位的职责明确授权审批事项、审批部门和批准人等 安全…

前端面试js高频手写大全

res.push(fn(arr[i])) } return res } 3. reduce实现数组的map方法 Array.prototype.myMap function(fn,thisValue){ var res []; thisValue thisValue||[]; this.reduce(function(pre,cur,index,arr){ return res.push(fn.call(thisValue,cur,index,arr)); },[])…

云计算考试题

Cloud ❀ 云计算-虚拟化常见的两种架构_裸金属架构和宿主型架构的区别-CSDN博客 为啥要成2 11 bcd 16 acd abcd BCD NAS为啥支持文件存储的协议 选BCD 什么是网络文件系统 选bcd 错题 选abc 选bcd 选 abd

Spring Cloud Gateway网关下的文档聚合(knife4j)

文章目录 引言I 服务发现自动聚合(discover)1.1 配置1.2 服务发现的路由聚合策略-数据来源1.3 编写动态路由实现类1.4 依赖II 其他2.1 网关动态加载swagger路由和配置2.2 无法处理 lb://URI,返回503错误。2.3 SpringBoot3 解决NoResourceFoundException: No static resource f…

让PG停摆一周的大会?2024 PGConf.dev 技术大盘点(下)

PGCon.Dev 的前身是 PGCon —— 最知名的 PostgreSQL Hacker 年度聚会&#xff0c;也可以说是决定 PostgreSQL 未来的会议。从 2007 年成立以来&#xff0c;一直都是在加拿大渥太华举办至今。 有多隆重呢&#xff1f;PG 核心组的 Peter Eisentraut 在会后做了一个统计&#xff…

建筑驱鸟设备 | 建筑专用超声波驱鸟器

从半夜的鸣叫到频繁的鸟粪污染&#xff0c;鸟类活动有时会成为城市居民不得不面对的小小困扰。通过合理的驱鸟方法&#xff0c;我们可以有效地减少鸟类对建筑物的侵扰&#xff0c;保护建筑物的完好和安全&#xff0c;同时维护城市居民的生活质量。 建筑专用超声波驱鸟器&#x…

PHP框架之ThinkPHP框架

ThinkPHP框架概述 ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的开源轻量级PHP框架。它诞生于2006年初&#xff0c;原名FCS&#xff0c;2007年元旦正式更名为ThinkPHP&#xff0c;遵循Apache2开源协议发布。ThinkPHP从Struts结构移植过来并做了改进和完善&#…

为什么伦敦金新手不能用一小时图及以下的时间周期?

刚进入伦敦金市场的投资者&#xff0c;一般不建议使用较低的时间周期&#xff0c;如1小时图或以下。不仅如此&#xff0c;新手或者兼职投资者会被要求使用较高的时间周期交易&#xff0c;如4小时图或日线图&#xff0c;这有什么道理呢&#xff1f;下面我们就来讨论一下。 新手的…

从零开始如何学习人工智能?

说说我自己的情况&#xff1a;我接触AI的时候&#xff0c;是在研一。那个时候AlphaGo战胜围棋世界冠军李世石是大新闻&#xff0c;人工智能第一次出现我面前&#xff0c;当时就想搞清楚背后的原理以及这些技术有什么作用。 就开始找资料&#xff0c;看视频。随着了解的深入&am…

大数据面试-Scala

谈谈scala的闭包、柯里化、高阶函数 如果一个函数&#xff0c;访问到了它的外部&#xff08;局部&#xff09;变量的值&#xff0c;那么这个函数和他所处的环境&#xff0c;称为闭包。 闭包在函数式编程中是一个重要的概念&#xff0c;广泛用于高阶函数、柯里化等技术中。 函数…

社区团购系统智慧门店物流配送系统开发,支持小程序公众号。

目录 前言&#xff1a; 一、为什么要做社区团购小程序&#xff1f; 二、怎么做一个社区团购小程序&#xff1f; 三、制作属于自己的社区团购小程序有什么好处&#xff1f; 总结&#xff1a; 前言&#xff1a; 社区团购是针对小区居民或群体开发的在线购物平台&#xff0c;…

python之eval函数使用详解

eval() 是 Python 内置的一个函数&#xff0c;它可以将字符串最外侧的引号去掉&#xff0c;并且按照python语句方式执行去掉引号后的代码&#xff08;去掉引号后&#xff0c;代码可能还是字符串&#xff0c;可能是数字&#xff0c;可能是列表&#xff0c;可能是执行函数的代码块…

win10手动安装stable-diffusion-webui

目录 1.python下载安装 2.git下载安装 3.stable-diffusion-webui下载 4.安装s-d-webui的依赖包&#xff08;用国内镜像提速&#xff09; 5.git下载的stable-diffusion-webui&#xff0c;依赖包提示已安装&#xff0c;但运行webui-user.bat后&#xff0c;又开始下载 6.修…

RedTail 僵尸网络积极利用新漏洞发起攻击

自从 Palo Alto 的 PAN-OS 漏洞公开披露以来&#xff0c;研究人员发现已有攻击者将该漏洞纳入武器库中。 CVE-2024-3400 2024 年 4 月 11 日&#xff0c;Palo Alto 发布公告称基于 PAN-OS 的产品中存在的 0day 漏洞已经被攻击者利用&#xff0c;安全公司 Volexity 已经发现了…

配置 python 脚本操作Excel 环境

在已装python的前提下 一、安装依赖库 pip install pandas pip install openpyxl安装完后&#xff0c;可以在 Python 中运行以下命令来查看 pandas 或 openpyxl 的安装路径&#xff1a; import pandas as pd print(pd.__path__)import openpyxl print(openpyxl.__path__)二、测…

LearnOpenGL - Android OpenGL ES 3.0 绘制纹理

系列文章目录 LearnOpenGL 笔记 - 入门 01 OpenGLLearnOpenGL 笔记 - 入门 02 创建窗口LearnOpenGL 笔记 - 入门 03 你好&#xff0c;窗口LearnOpenGL 笔记 - 入门 04 你好&#xff0c;三角形OpenGL - 如何理解 VAO 与 VBO 之间的关系LearnOpenGL - Android OpenGL ES 3.0 绘制…

【C/C++】实现高性能日志轮转功能,已实测

基本实现 在C语言中实现日志文件轮转功能&#xff0c;你需要手动编写代码来处理文件的重命名、压缩和删除。下面是一个简单的C语言程序示例&#xff0c;它演示了如何实现基本的日志文件轮转功能。这个程序会检查日志文件的大小&#xff0c;如果超过预设的大小限制&#xff0c;…

光纤中的数值 2.405 是怎么一回事?

在光纤通信中,光线的传播依赖于纤芯和包层之间的折射率差异。 即,当光线从纤芯入射到界面上时,如果入射角大于临界角 θ0,将发生全反射,没有光能量透射至包层而泄漏出去,此即光纤导光原理。 反映到光纤的端面,在光纤端面的光线,当入射角必须小于光纤的孔径角 α0 ,此时…

高效管理:好用的项目管理工具推荐

在当今快速变化的商业环境中&#xff0c;高效的项目管理工具能够显著提升团队的生产力和项目的成功率&#xff0c;还能有效地跟踪项目进度。所以&#xff0c;一款优秀的项目管理工具首先要具备先进的项目管理理念&#xff0c;支持多种研发管理和项目管理方法论&#xff0c;才能…