深入浅出带你了解PHAR反序列化

news2024/11/16 5:36:52

前情提要

为了丰富自己是知识体系(为了日更薅羊毛),我最近频繁翻阅MDN的文档,果然MDN文档常看常新。

最近翻到CSS部分,然后打开了伪类这一栏,好家伙,快60个了(包括实验中的)。

跳过常用的,还是很多。分批分期研究的话,我想三期应该是能够收官。

今天开启第二篇:《看着简单却有大用处的CSS伪类》。

伪类们

:is()

:is() 伪类可以匹配入参的选择器列表中,任意一个选择器可以选择的元素

:is() 伪类大有用途,我对它的评价是「短小精悍」。

实例:简化选择器

我要设置不同元素下的a元素和span元素样式,使用:is() 伪类之前的样式代码:

ol li,
ul li,
li a {color: red;
}
p a,
p span {color: blue;
} 

使用:is() 伪类之后的样式代码:

:is(ol, ul) :is(li, a, span) {color: red;
}
:is(p) :is(a, span) {color: blue;
} 

展示效果

实例:框架中全局匹配

这个很实用,日常开发中会使用第三方UI组件,这个时候需要重置样式一般采用下面的方案:

Vue框架中使用 :deep() 伪类函数,React使用 :global()

其实:is()也可以实现。

当然这个应用场景不是我总结,是我看张鑫旭大佬的文章《巧用:is()或:where()伪类让scoped的style依然全局匹配》学到的。详细的方案和总结,可以看这篇文章。

:where()

:where()伪类接受选择器列表作为它的参数,将会选择所有能被该选择器列表中任何一条规则选中的元素。

看这个介绍是不是跟:is() 伪类很像。没错,两个伪类的语法和作用十分相似,区别就在于选择器的优先级。

:where() 的优先级总是为 0,但是 :is() 的优先级是由它的选择器列表中优先级最高的选择器决定的。

实例::where() 和 :is()对比

  • 两组div和p元素,内层都是span元素,根据class名进行区分,分别设置了:where() 和 :is()伪类。
  • 另外单独设置了p元素下span元素的颜色值与前面的伪类不同。
:is(div.is-div, p.is-p) span {color: red;
}
:where(div.where-div, p.where-p) span {color: blue;
}
p span {color: gray;
}
......
<div class="is-div"><span> :is()伪类值div元素下的span元素</span></div>
<p class="is-p"><span>:is()伪类值p元素下的span元素</span></p>
<div class="where-div"><span> :where()伪类值div元素下的span元素</span></div>
<p class="where-p"><span>:where()伪类值p元素下的span元素</span></p> 

展示效果

通过展示效果可以发现,单独设置的样式覆盖了:where()伪类的样式,没有覆盖:is()伪类的样式。原因就是前面提到的:where() 的优先级总是为 0,所以样式可以被覆盖。

:not()

如果想对某个结构元素设置样式,但是想排除这个结构元素下面的子元素应用该样式,可以使用:not() 伪类。

:not() 伪类的参数可以是一个或多个选择器。多个选择器以逗号分隔。同时选择器中不得包含另一个否定选择器或伪元素。

MDN中有一行提示引起我的注意:

:not() 伪类有许多怪异、技巧和意料之外的结果,你在使用它之前应该意识到这些。

都有哪些需要特别注意📢,且看我下面的实例。

实例:提高规则的优先级

.foo:not(.bar) 和 .foo会匹配相同的元素,但是具有两个class的选择器具有更高的优先级。

所以第一行的文字颜色是红色而不是蓝色。第二行文字是蓝色

.foo:not(.bar) {color: red;
}
.foo {color: blue;
}
......
<div class="foo">foo</div>
<div class="foo bar">foo和bar</div> 

展示效果

实例:同时否定多个选择器

:not(.foo, .bar)会否定样式为.foo或.bar的元素。

  • 将样式为.foo或.bar的元素设置文字颜色是蓝色;
  • :not(.foo, .bar)设置的文字颜色是红色。
.foo,
.bar {color: blue;
}
:not(.foo, .bar) {color: red;
}
......
<div>无样式设置</div>
<div class="foo">foo样式</div>
<div class="bar">bar样式</div>
<div class="foo bar">foo和bar样式</div> 

展示效果

实例:可以匹配html和body元素

  • body元素上设置文字颜色是蓝色;
  • :not(.foo, .bar)设置的文字颜色是红色。

但是看展示效果,文字颜色都是红色,因为:not(.foo) 将匹配任何非 .foo 的元素,包括 html元素 和 body元素。且前面提到,:not伪类会提升优先级,所以最终页面的文字颜色均为红色。

body {padding: 0;margin: 0;background: #fff;color: blue;
}
:not(.foo) {color: red;
}
......
<div>无样式设置</div>
<div class="foo">foo样式</div>
<div class="bar">bar样式</div> 

展示效果

最后

最近找到一个VUE的文档,它将VUE的各个知识点进行了总结,整理成了《Vue 开发必须知道的36个技巧》。内容比较详实,对各个知识点的讲解也十分到位。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

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

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

相关文章

【EC200U】 SIM卡使用

EC200U SIM卡SIM卡是什么SIM卡分类Quecpython SIM库调用获取sim卡的状态获取IMSI获取ICCID运行测试我们物联网要用到SIM卡&#xff0c;这张卡是4G应用的基础&#xff0c;许多功能都需要用到SIM卡。买此类板子别忘了买SIM卡哦。 SIM卡是什么 SIM卡是(Subscriber Identity Modul…

影刀连接Mysql数据库

这里写自定义目录标题官方教程下载安装Mysql-connector配置数据源填写影刀的配置的向导官方教程 官方影刀下载mysql连接教程 https://www.winrobot360.com/yddoc/language/zh-cn/%E6%8C%87%E4%BB%A4%E6%96%87%E6%A1%A3/%E5%85%B6%E4%BB%96/%E6%95%B0%E6%8D%AE%E5%BA%93/%E8%BF…

初步探索GraalVM--云原生时代JVM黑科技

1 云原生时代Java语言的困境 经过多年的演进&#xff0c;Java语言的功能和性能都在不断的发展和提高&#xff0c;诸如即时编译器、垃圾回收器等系统都能体现Java语言的优秀&#xff0c;但是想要享受这些功能带来的提升都需要一段时间的运行来达到最佳性能&#xff0c;总的来说…

linux笔记(5):按照东山派的官方教程编译buildroot(东山哪吒,D1-H)踩坑记录

文章目录1.编译流程1.1获取sdk源码1.2 补充&#xff1a;下载riscv64-glibc-gcc-thead_20200702.tar.xz1.3 补充&#xff1a;安装mtool工具1.4 安装必要依赖包1.5 编译sdcard 最小系统镜像1.6 烧录最小镜像系统到tf(SD)卡1.6.1 安装烧录工具1.6.2 格式化SD卡1.6.3 烧录镜像到sd卡…

杂篇(一)

开篇词 我本是红尘一俗客&#xff0c;没有那文人酸腐气。 曾几何时&#xff0c;梳理收藏夹&#xff0c;发现了很久前收藏的一位前端大佬的个人博客&#xff1a;怡红院落 &#xff0c;因为领域不同&#xff0c;之前一直没有拜读过他的文章。 我尚且无法判断怡红公子购买的域名…

【Log日志】springboot项目中集成Log日志详解

springboot项目中集成Log日志详解一、Log日志介绍1.Log 日志组件主要作用及用途2.日志的级别Level级别控制3.日志的输出Import3.1 快速使用3.2 日志文件输出3.3 自定义配置4. Spring Boot 日志组件 Log Plugin二、Spring Boot Logback1.依赖配置 Pom.xml2.使用 YML 配置 logbac…

Linux操作系统~系统文件IO,什么是文件描述符fd?什么是vfs虚拟文件系统

目录 1.open() &#xff08;1&#xff09;.第二个参数flags—通过比特位传多组标记 2.文件描述符fd&#xff08;open函数的返回值&#xff09; &#xff08;1&#xff09;.fd的本质 &#xff08;2&#xff09;.vfs-虚拟文件系统&#xff08;一切皆文件&#xff09; &…

MySQL Binlog 简介

MySQL Binlog Binlog 记录了所有的 DDL 和 DML(除了数据查询语句)语句&#xff0c;以事件形式记录&#xff0c;还包含语句所执行的消耗的时间&#xff0c;MySQL 的二进制日志是事务安全型的。 一般来说开启二进制日志大概会有 1%的性能损耗。 二进制日志包括两类文件&#xf…

seccon 2022 quals -simplemod

文章目录题外话调试思路如何找到对应的link_map分析do_lookup_x我的构造payloadall_exp总结题外话 这个题应该是seccon解题数量最少的了 这个题目其实和babyfile差不多&#xff0c;都是考虑0 lick,整体而言通过这两个题可以感受到出题者对于IO以及dl_resolv的理解深入 这个题目…

阻止移动端 touchmove 与 scroll 事件冲突

在移动端开发过程中&#xff0c;如果要实现一个元素或按钮的拖动定位&#xff0c;会出现很多坑。例如&#xff1a;元素上下移动过程中&#xff0c;会触发 body 的 scroll 事件&#xff0c;导致整体的位置偏移&#xff0c;这时就需要 阻止移动端 touchmove 与 scroll 事件冲突 。…

confluent-kafka-go依赖库编译体验优化

文章目录问题描述&#xff1a;解决方案1&#xff1a;编写Dockerfile文件2&#xff1a;运行Docker镜像3&#xff1a;进入镜像进行编译4&#xff1a;将编译成功的二进制文件复制到本机参考地址问题描述&#xff1a; ​ 在项目中使用了go的kafka库confluent-kafka-go&#xff0c;…

力扣(LeetCode)2. 两数相加(C++\C)

模拟 模拟加法运算&#xff0c;设置进位数 ttt &#xff0c; t(l1t(l1t(l1->vall2vall2vall2->valt)%10valt)\%10valt)%10 即为当前位上的数&#xff0c; t/10t/10t/10 即是进位数。 设置哑结点&#xff0c;便于操作头结点。 模拟上述操作&#xff0c;最后返回哑结点的…

Windows11更新最新系统版本后无法播放媒体声音

故障机器Dell为例 step1&#xff1a;检测系统提示音是否正常&#xff0c;正常可观察第二步&#xff1b; step2:打开计算机管理-设备管理器-观察声音设备是否正常&#xff0c;可右键编辑重启驱动 step3&#xff1a;打开无法播放媒体声音的设备查看设置&#xff0c;Firefox为例 …

腾讯魏巍:Eunomia云原生资源编排优化

2022年11月10日&#xff0c;在中国信通院、腾讯云、FinOps产业标准工作组联合发起的《原动力x云原生正发声 降本增效大讲堂》系列直播活动第10讲上&#xff0c;腾讯Light云计算平台负责人魏巍分享了Eunomia云原生资源编排优化实践。本文整理自魏巍的分享。 云上资源优化背景 相…

为你的服务器集成 LDAP 认证

本文内容 为什么需要 LDAP 认证如何集成 LDAP 认证Nginx 篇Apache 篇Backend 篇本文小结回顾我这些年的工作经历,面向企业(2B)和面向用户(2C)的项目都曾接触过。我个人觉得,面向企业的项目更注重业务,参与决策的人数多、周期长,目的是为企业提供生产经营价值,如缩减成本、…

kotlin coroutine源码解析之suspend挂起函数原理

目录suspend挂起函数join原理Await原理Suspend函数总结suspend挂起函数 在idea中写某些协程函数的时候&#xff0c;会有一个绿色箭头图标的出现&#xff0c;如下图&#xff1a; 而且这些方法不放在协程里面写的话&#xff0c;idea编辑器还会报错&#xff0c;如下图&#xff1…

基于python的人力资源管理系统

摘 要 随着当今社会的发展&#xff0c;时代的进步&#xff0c;各行各业也在发生着变化&#xff0c;比如人力资源管理这一方面&#xff0c;利用网络已经逐步进入人们的生活。传统的人力资源管理&#xff0c;都是员工去公司查看部门信息、招聘信息&#xff0c;这种传统方式局限性…

第一个 Go 程序,从 Hello World 开始

1、开发编辑器 Go 采用的是UTF-8编码的文本文件存放源代码&#xff0c;理论上使用任何一款文本编辑器都可以做 Go 语言开发&#xff0c;这里推荐使用 VS Code 和 Goland。 VS Code 是微软开源的编辑器&#xff0c;而 Goland 是 jetbrains 出品的付费IDE。GoLand 开发工具时收…

linux 安装微擎

前言 OS: CentOS Linux release 7.6.1810 (Core)nginx1.12.2微擎 v2.7.4 环境准备 PHP 7.0MYSQL 5.7 安装mysql 5.7 参考 【Docker】 安装 mysql 安装PHP 7.0 参考 Linux 利用yum源安装php7.0nginx PHP 支持 GD2 yum install php70w-gd*安装完成后重启php PHP 支持 D…

从感知机到神经网络

一、神经网络的一个重要性质 1.1 重要性质 自动从数据中学习到合适的权重参数 1.2 称呼 共n层神经元&#xff0c;称之为n-1层网络 输入层中间层&#xff08;隐藏层&#xff09;输出层 1.3计算神经网络 节点值*权重值偏置值输出值 根据输出值的大小计算出节点值 输出值…