当前位置:首页 > 科技  > 软件

超实用的三个CSS伪类,直接少些几十行CSS代码

来源: 责编: 时间:2024-06-21 17:20:43 250观看
导读一、:where1.基本使用:where() CSS 伪类函数接受选择器列表作为它的参数,将会选择所有能被该选择器列表中任何一条规则选中的元素。以下代码,文本都会变成 yellow 颜色::where(div p) span { color: yellow;}<div cl

pJE28资讯网——每日最新资讯28at.com

一、:where

1.基本使用

:where()  CSS 伪类函数接受选择器列表作为它的参数,将会选择所有能被该选择器列表中任何一条规则选中的元素。pJE28资讯网——每日最新资讯28at.com

以下代码,文本都会变成 yellow 颜色:pJE28资讯网——每日最新资讯28at.com

:where(div p) span {    color: yellow;}<div class="test-div">    <span>哈哈</span></div><p class="test-p">    <span>哈哈</span></p>

2.使用场景

其实 :where() 的功能本来就有,只不过有了它之后,实现起这些功能来就更加方便快捷~接下来就来讲讲它的组合/叠加功能。pJE28资讯网——每日最新资讯28at.com

我们来看下面的这段 css 代码:pJE28资讯网——每日最新资讯28at.com

div a:hover,li a:hover,.cla a:hover,.aa .bb a:hover,[class^='bold'] a:hover{  color: yellow;}

我们可以使用 :where()来简化这个写法,使用它找出 div li .cla 这三种选择器,选择器可以是标签,也可以是类名,也可以是选择器表达式:pJE28资讯网——每日最新资讯28at.com

:where(div, li, .cla, .a .b, [class^='bold']) a:hover {    color:

再来看看使用 :where() 的组合,完成一些功能,我们看以下的代码:pJE28资讯网——每日最新资讯28at.com

.dark-theme button,.dark-theme a,.light-theme button,.light-theme a{ color: pink;}

我们完全可以使用 :where() 简化这个写法:pJE28资讯网——每日最新资讯28at.com

:where(.dark-theme, light-theme) :where(button, a) {    color: pink;}

3.优先级

:where()的优先级是 0,我们可以看下面代码:pJE28资讯网——每日最新资讯28at.com

.test {    color: yellow;}:where(.test) {    color: pink}

最后字体颜色是 yellow。pJE28资讯网——每日最新资讯28at.com

4.兼容性

全绿~pJE28资讯网——每日最新资讯28at.com

pJE28资讯网——每日最新资讯28at.com

二、:is

:is()跟:where()可以说一模一样,区别就是 :is()的优先级不是0,而是由传入的选择器来决定的,拿刚刚的代码来举个例子:pJE28资讯网——每日最新资讯28at.com

div {    color: yellow;}:where(.test) {    color: pink}<div class="test">哈哈</div>

这要是 :where(),那么字体颜色会是 yellow,因为它的优先级是 0。pJE28资讯网——每日最新资讯28at.com

但是如果是 :is()的话,字体颜色会是 pink,因为 类选择器 优先级比 标签选择器 优先级高~pJE28资讯网——每日最新资讯28at.com

:is(.test) {    color: pink}div {    color: yellow;}<div class="test">哈哈</div>

兼容性

全绿~pJE28资讯网——每日最新资讯28at.com

pJE28资讯网——每日最新资讯28at.com

三、:has

1.基本使用

举一个场景例子,我们看以下代码,一个容器中,图片是可以显隐的,我想要实现:pJE28资讯网——每日最新资讯28at.com

  • 图片显示时,字体大小为 12px
  • 图片隐藏时,字体大小为 20px
<div class="container">    哈哈哈哈哈    <img class="test-img" v-if="showImg"></img></div>

如果按照以前的做法,就是使用 动态class 的方式去玩完成这个功能,但是现在有 :has()可以通过 css 的方式去完成这件事~pJE28资讯网——每日最新资讯28at.com

.container {    font-size: 20px;}.container:has(img) {    font-size: 12px;}或者.container:has(.test-img) {    font-size: 12px;}

2.组合使用

现在又有两个场景:pJE28资讯网——每日最新资讯28at.com

  • 判断容器有没有子img,有的话字体设置为 12px(上面的例子是后代选择器,不是子选择器)
  • 判断容器有没有一个小相邻的img,有的话设置字体颜色为 red

我们可以这么去实现:pJE28资讯网——每日最新资讯28at.com

.container:has(>img) {    font-size: 12px;}.container:has(+img) {    color: red;}

再来一个场景,当我 hover 到 子img 上时,我想要让 container 的字体变粗,可以这么去使用~pJE28资讯网——每日最新资讯28at.com

.container:has(>img:hover) {    color: red;}

3.兼容性

还是有一些浏览器不支持:pJE28资讯网——每日最新资讯28at.com

pJE28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-95543-0.html超实用的三个CSS伪类,直接少些几十行CSS代码

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Python 中的十个不可不知的隐藏系统调用功能

下一篇: 关于 Serilog.NET 中的日志使用技巧

标签:
  • 热门焦点
  • 6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月份有一个618,虽然这是京东周年庆的日子,但别的电商也都不约而同的跟进了,反正促销没坏处,厂商和用户都能满意。618期间一些产品也出现了历史低价,那么各个价位段的产品性价比
  • 线程通讯的三种方法!通俗易懂

    线程通信是指多个线程之间通过某种机制进行协调和交互,例如,线程等待和通知机制就是线程通讯的主要手段之一。 在 Java 中,线程等待和通知的实现手段有以下几种方式:Object 类下
  • 共享单车的故事讲到哪了?

    来源丨海克财经与共享充电宝相差不多,共享单车已很久没有被国内热点新闻关照到了。除了一再涨价和用户直呼用不起了。近日多家媒体再发报道称,成都、天津、郑州等地多个共享单
  • 阿里大调整

    来源:产品刘有媒体报道称,近期淘宝天猫集团启动了近年来最大的人力制度改革,涉及员工绩效、层级体系等多个核心事项,目前已形成一个初步的&ldquo;征求意见版&rdquo;:1、取消P序列
  • 华为HarmonyOS 4.0将于8月4日发布 或搭载AI大模型技术

    华为宣布HarmonyOS4.0将于8月4日正式发布。此前,华为已经针对开发者公布了HarmonyOS4.0,以便于开发者提前进行适配,也因此被曝光出了一些新系统的特性
  • iQOO 11S新品发布会

    iQOO将在7月4日19:00举行新品发布会,推出杭州亚运会电竞赛事官方用机iQOO 11S。
  • 2299元起!iQOO Pad开启预售:性能最强天玑平板

    5月23日,iQOO如期举行了新品发布会,除了首发安卓最强旗舰处理器的iQOO Neo8系列新机外,还在发布会上推出了旗下首款平板电脑——iQOO Pad,其搭载了天玑
  • 荣耀Magicbook V 14 2021曙光蓝版本正式开售,拥有触摸屏

    荣耀 Magicbook V 14 2021 曙光蓝版本正式开售,搭载 i7-11390H 处理器与 MX450 显卡,配备 16GB 内存与 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 键盘键程、
  • 联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将于秋季新品会上推出,官方按照惯例直接在发布会前给出了机型的所有参数。联想小新 Pad Pro 12.6 将搭载高通骁龙 870 处理器,重量为 5
Top