工作中提高CSS的编写效率,可以多用这三个CSS伪类

这篇具有很好参考价值的文章主要介绍了工作中提高CSS的编写效率,可以多用这三个CSS伪类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

:where

基本使用

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

以下代码,文本都会变成 yellow 颜色

:where(div p) span {
    color: yellow;
}

<div class="test-div">
    <span>哈哈</span>
</div>
<p class="test-p">
    <span>哈哈</span>
</p>

使用场景

其实 :where() 的功能本来就有,只不过有了它之后,实现起这些功能来就更加方便快捷~接下来就来讲讲它的组合/叠加功能

我们来看下面的这段 css 代码

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

我们可以使用 :where()来简化这个写法,使用它找出 div li .cla 这三种选择器,选择器可以是标签,也可以是类名,也可以是选择器表达式

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

再来看看使用 :where() 的组合,完成一些功能,我们看以下的代码

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

我们完全可以使用 :where() 简化这个写法

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

优先级

:where()的优先级是 0,我们可以看下面代码

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

最后字体颜色是 yellow

兼容性

工作中提高CSS的编写效率,可以多用这三个CSS伪类,css,前端

:is

:is():where()可以说一模一样,区别就是 :is()的优先级不是0,而是由传入的选择器来决定的,拿刚刚的代码来举个例子

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

<div class="test">哈哈</div>

这要是 :where(),那么字体颜色会是 yellow,因为它的优先级是 0

但是如果是 :is()的话,字体颜色会是 pink,因为 类选择器 优先级比 标签选择器 优先级高~

:is(.test) {
    color: pink
}
div {
    color: yellow;
}

<div class="test">哈哈</div>

兼容性

工作中提高CSS的编写效率,可以多用这三个CSS伪类,css,前端

:has

基本使用

举一个场景例子,我们看以下代码,一个容器中,图片是可以显隐的,我想要实现:

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

如果按照以前的做法,就是使用 动态class 的方式去玩完成这个功能,但是现在有 :has()可以通过 css 的方式去完成这件事~

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

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

组合使用

现在又有两个场景

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

我们可以这么去实现:

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

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

再来一个场景,当我 hover 到 子img 上时,我想要让 container 的字体变粗,可以这么去使用~

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

兼容性

还是有一些浏览器不支持

工作中提高CSS的编写效率,可以多用这三个CSS伪类,css,前端文章来源地址https://www.toymoban.com/news/detail-687322.html

到了这里,关于工作中提高CSS的编写效率,可以多用这三个CSS伪类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 医生如何使用ChatGPT提高工作效率

    ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:

    2024年02月11日
    浏览(46)
  • 用心维护好电脑,提高学习工作效率

    无论是学习还是工作,电脑都是IT人必不可少的重要武器,一台好电脑除了自身配置要经得起考验,后期主人对它的维护也是决定它寿命的重要因素! 系统制造商: ASUSTeK COMPUTER INC. 系统型号: ZenBook UX481FAY 1.1 如何查看自己的电脑硬件信息呢? 可以在命令提示符或PowerShell中输入

    2024年02月11日
    浏览(35)
  • 利用大语言模型(LLM )提高工作效率

    日常工作就是面向 google/ 百度编程,除了给变量命名是手动输入,大多时候就是通过搜索引擎拷贝别人的代码,或者找到旧项目一段代码拷贝过来使用。这无疑是开发人员的真实写照;然而,通过搜索引擎搜索答案,无疑是粪堆里淘金子,遇到简单的问题,一次搜索点三个连

    2024年02月05日
    浏览(40)
  • 客服如何使用ChatGPT提高工作效率

    ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:

    2024年02月11日
    浏览(56)
  • 告别重复工作,用Python实现办公自动化,提高工作效率

    996 一直是互联网老生常谈的话题了,但抛开其他只谈工作本身,你有没有想过, 下班晚、加班,有时候可能是因为自己工作比较低效? 先给你分享一个案例: 场景是在维护日活超过 3 亿用户的微博私信平台,在一个业务模块中,需要批量替换 200 台服务器中的软件配置,而

    2024年02月06日
    浏览(34)
  • 程序员如何使用chatgpt提高工作效率

    公众号对话chatgpt 网页在线对话 ● 拥有一个 OpenAI 账号(需要梯子)。 ● 账号申请访问地址:https://platform.openai.com/。 ● ChatGPT 对话地址:https://chat.openai.com/chat。 API接入 ● 需要一个 API key(依赖于 OpenAI 账号)。 ● 普通的 HTTP 请求即可接入,参考文档:https://platform.opena

    2024年02月08日
    浏览(48)
  • 一个解放双手、提高工作效率的代码生成器!

    大家好,我是 Java陈序员 。 要说现在 Java 后端开发中,最火的框架肯定是 SpringBoot 。 而持久层的框架首推 MyBatis , MyBatisPlus 作为 MyBatis 的增强框架,其强大的 CURD 能力,被广大的开发者所喜爱! SpringBoot + MyBatisPlus 可以说是王炸级别的组合! 今天给大家介绍一个可以 快速生

    2024年02月05日
    浏览(52)
  • 开发一款提高效率工作的命令行程序

    开发工作中我们常用到\\\"时间戳和时间\\\"、\\\"生成guid\\\"、\\\"模拟身份证号\\\",来模拟数据校验和显示;每一次都去找在线工具,确实可以,但我觉得挺麻烦,于是乎想到了自定义一个命令行。 目前我已经实现以下功能: 具体怎样实现呢? 创建控制台应用并安装nuget包 McMaster.Extensio

    2024年02月02日
    浏览(31)
  • 推荐几款可以大幅提高开发效率的vscode插件

    1、Vue 2 Snippets 这是一款基于vue2的代码片段提示插件,特别好用,可以有效的提高我们的编码速度。 他的能力非常强大,具体还需要我们去看他的文档文档地址 ,解锁更多能力。 2、Path Autocomplete 这是一款路劲提示插件 vscode自带相对路劲的提示功能,但是不支持绝对路劲和特

    2024年02月08日
    浏览(52)
  • Python+Requests+PyWebIO框架详解,编写测试工具提高团队测试效率

    老铁们如果是QA,想必也遇到过类似痛点吧: 业务逻辑复杂性决定测试场景复杂性,配置测试场景常常花费大量时间,导致测试效率降低 新用户的测试场景,账号可能经常注销,协助debug时需要用userid,每次都得重新抓包。而且测试账号很多,来回切,即使在本地管理userid,

    2024年02月13日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包