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

news2024/11/26 10:50:16

文章目录

  • 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.coloradmin.cn/o/1833710.html

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

相关文章

HTML/CSS Xiaomi综合案例day 6.13-6.16

ok了家人们今天不做别的&#xff0c;今天浅做一个小米网站&#xff0c;话不多说看看怎么事 一.顶部 我们先看看代码 1&#xff0c;html 2&#xff0c;css代码 1.我们先消除浏览器自带的内外边距&#xff0c;添加一个总背景颜色为浅灰色&#xff0c;设置顶部盒子的大小&#x…

【电脑小白】装机从认识电脑部件开始

前言 在 B 站上刷到了一个很牛逼的电脑装机视频&#xff0c;很适合电脑小白学习&#xff0c;故用文本记录下。 推荐对组装台式电脑有兴趣的小伙伴都去看看这个视频&#xff1a; 原视频链接&#xff1a;【装机教程】全网最好的装机教程&#xff0c;没有之一_哔哩哔哩_bilibil…

JVM-GC-常用调优命令和GC参数

定位问题常用命令 top&#xff1a;查看内存/CPU占用情况top -Hp pid: 查看进程内线程情况jsp:查看java进程情况jstack 线程pid:查看进程内线程信息&#xff0c;一般查看线程状态&#xff0c;判断是否死锁。重点观察&#xff1a;WAITING、BLOCKED的线程&#xff0c;另外查看wait…

【网络安全】网络安全威胁及途径

1、网络安全威胁的种类及途径 &#xff08;1&#xff09;网络安全威胁的主要类型 网络安全面临的威胁和隐患种类繁多&#xff0c;主要包括人为因素、网络系统及数据资源和运行环境等影响。网络安全威胁主要表现为&#xff1a;黑客入侵、非授权访问、窃听、假冒合法用户、病毒…

【读博日记】拓扑结构(待修正)

Topology 拓扑学 内容来源于互联网&#xff0c;还在甄别中——20240617 拓扑结构指把实体抽象成与其形状大小无关的点&#xff0c;把连接实体的线路抽象成线&#xff0c;再研究这些电线之间的关系。 所谓相似的拓扑结构&#xff1a; 例如一个圆环变成正方形、长方形、三角形…

基 CanMV 的 C 开发环境搭建

不论是使用 CanMV 提供的基于 C 语言和 FreeRTOS 的应用开发方式开发应用程序或是编译 CanMV 固件&#xff0c;都需要搭建基于 CanMV 的 C 开发环境&#xff0c;用于编译 CanMV 源码。 1. 开发环境搭建说明 CanMV 提供了基于 C 语言和 FreeRTOS 的应用开发…

读AI新生:破解人机共存密码笔记04计算的极限

1. 计算的极限 1.1. 光靠速度是无法给我们带来人工智能的 1.1.1. 在速度更快的计算机上运行糟糕的算法并不会使算法变得更优秀&#xff0c;这只意味着你会更快地得到错误的答案 1.1.2. 数据越多&#xff0c;错误答案出现的机会就越大 1.…

EE trade:现货黄金杠杆比例的计算方法

现货黄金杠杆交易是一种利用保证金进行交易的方式&#xff0c;允许投资者用较少的资金控制较大的交易量&#xff0c;从而放大收益或损失。杠杆比例的计算方法相对简单&#xff0c;主要取决于交易所需的保证金和实际交易金额之间的关系。 杠杆比例的计算公式 杠杆比例 实际交…

使用插件永久解决IDEA使用Shift+F10失效问题(不需要换老版本输入法)

在日常编程中&#xff0c;使用快捷键可以大大提高开发效率。然而&#xff0c;有时候我们会遇到IDEA 中&#xff0c;ShiftF10 快捷键失效。这个蛋疼的问题现在终于可以得到解决&#xff0c;上个月在逛V2EX的时候看见一位大佬做的插件。 大佬链接&#xff1a;https://www.v2ex.c…

物联网技术-第4章物联网通信技术-4.1计算机网络

目录 1.1计算机网络拓扑与组成 &#xff08;1&#xff09;全连通式网络 &#xff08;2&#xff09;星型网 &#xff08;3&#xff09;环形网 &#xff08;4&#xff09;总线网 &#xff08;5&#xff09;不规则型网 1.2数据交换类型 &#xff08;1&#xff09;电路交换网 &…

STM32单片机DMA存储器详解

文章目录 1. DMA概述 2. 存储器映像 3. DMA框架图 4. DMA请求 5. 数据宽度与对齐 6. DMA数据转运 7. ADC扫描模式和DMA 8. 代码示例 1. DMA概述 DMA&#xff08;Direct Memory Access&#xff09;可以直接访问STM32内部的存储器&#xff0c;DMA是一种技术&#xff0c;…

C++ | Leetcode C++题解之第162题寻找峰值

题目&#xff1a; 题解&#xff1a; class Solution { public:int findPeakElement(vector<int>& nums) {int n nums.size();// 辅助函数&#xff0c;输入下标 i&#xff0c;返回一个二元组 (0/1, nums[i])// 方便处理 nums[-1] 以及 nums[n] 的边界情况auto get …

【漏洞复现】泛微OA E-Cology ln.FileDownload 任意文件读取漏洞

免责声明&#xff1a; 本文内容旨在提供有关特定漏洞或安全漏洞的信息&#xff0c;以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步&#xff0c;并非出于任何恶意目的。阅读者应该明白&#xff0c;在利用本文提到的漏洞信息或进行相关测…

Debian12的#!bash #!/bin/bash #!/bin/env bash #!/usr/bin/bash #!/usr/bin/env bash

bash脚本开头可写成 #!/bin/bash , #!/bin/env bash , #!/usr/bin/bash , #!/usr/bin/env bash #!/bin/bash , #!/usr/bin/bash#!/bin/env bash , #!/usr/bin/env bash Debian12的 /bin 是 /usr/bin 的软链接, /sbin 是 /usr/sbin 的软链接, (Debian12默认没有ll命令,用的ls …

网络安全:数据库安全性

文章目录 网络安全&#xff1a;数据库安全性引言数据库安全性的重要性常见的数据库安全威胁数据库安全性的最佳实践数据加密访问控制审计和监控 结语 网络安全&#xff1a;数据库安全性 引言 在前两篇文章中&#xff0c;我们讨论了SQL注入的概念和防范措施。本篇文章将聚焦于…

5216万!国内自动化巨头,拟剥离旗下子业务

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 近日&#xff0c;中控技术发布公告称&#xff0c;为进一步优化资产结构和产业布局&#xff0c;提升公司核心竞争力&#xff0c;公司拟将其全资子…

Python | Leetcode Python题解之第162题寻找峰值

题目&#xff1a; 题解&#xff1a; class Solution:def findPeakElement(self, nums: List[int]) -> int:n len(nums)# 辅助函数&#xff0c;输入下标 i&#xff0c;返回 nums[i] 的值# 方便处理 nums[-1] 以及 nums[n] 的边界情况def get(i: int) -> int:if i -1 or…

canvas实现画布拖拽效果 适配Uniapp和Vue (开箱即用)

需求:我司是做AIGC项目最近和地铁项目有关需要实现海报效果图&#xff0c;并且需要使用画布拖拽和修改上传删除等等功能 当时连续加班花了10个工作日搓出来 实现挺简单的但是Canvas数据处理还是挺麻烦的 大概功能如图下 首先我们需要引入Fabric.js 这个库封装好了原生的Canva…

如何实现element表格合并行?

前两天我一个朋友咨询我element表格合并行的问题,他研究了很久,已经开始怀疑是不是element UI出现了bug,然后跟我一阵沟通,最终解决了问题,他的问题在于他把事情想复杂了,接下来我们一起来看一下这个经典“案例”,很多人真的很有可能走入这个误区,当然老鸟就不用看了,…

Pyqt QCustomPlot 简介、安装与实用代码示例(二)

目录 前言实用代码示例彩色图演示散点像素图演示实时数据演示多轴演示对数轴演示 结语 所有文章除特别声明外&#xff0c;均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 nixgnauhcuy’s blog&#xff01; 如需转载&#xff0c;请标明出处&#xff01; 完整代码我已经上传到…