什么? CSS 将支持 if() 函数了?

news2024/11/12 15:51:39

CSS Working Group 简称 CSSWG, 在近期的会议中决定将 if() 添加到 CSS Values Module Level 5 中。

详情可见:css-meeting-bot 、[css-values] if() function

当我看到这个消息的时候,心中直呼这很逆天了,我们知道像 less 这些 css 这些预处理器也是支持 if() 函数的, 例如 less中的 if 函数,但是他们都是 静态编译 的,在打包 build 的时候,就会把这个 if() 函数移除掉,替换成编译时确定的样式,这意味着我们无法动态地去调整样式。

所以,如果 css 原生支持 if() 函数的话,我们就可以利用 if() 函数在运行时的动态性,省去大量的 js 逻辑处理了, 使得我们在处理样式交互上方便很多。

因此,我想说的是,这个函数一旦落地实现在浏览器的那天,我相信那一天一定是一个历史性的时刻。

闲言少叙,下面让我们看看这个 if() 函数怎么用吧。

基本使用

虽然现在还没有发布,没有环境可以让我们真实体验效果,但是我们可以从官方的css-conditional-values文档中管中窥豹, 了解一些常用的语法。

由于是草案,最终的标准可能会对此做一些调整

  • 基础语法

if()函数允许用户根据特定条件将css的属性值(或其部分)设置为不同的值。

  • condition 指的是条件判断
  • consequent 当条件 condition 为 true 的时候应用的 css 值
  • <<antecedent>>? 可选值,不传为空,当条件 condition 为 false 的时候应用的 css 值

看起来就和js的三元表达式一样

if() 函数还支持构建 css 属性值的部分属性

同时if() 函数也支持嵌套定义

这里使用 = 进行变量比较

但是这种嵌套使得阅读起来不方面,if() 函数同时还支持扁平化的写法

这样写就清晰很多了,满足哪个分支就返回对应的属性值

应用场景

if() 函数我相信会让主题切换更加方便快捷

比如一个设置背景颜色随主题变化进行动态调整的代码就可以写成这样:

小结

虽然 if() 函数距离正式落地还有很长的路要走,按照以往的惯例,这一个过程顺利的话也要1-2年的时间。不过也是可以值得期待的。

如果这篇文章对你有帮助,欢迎点赞、关注➕、转发 ✔ !

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

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

相关文章

【深度学习】PyTorch深度学习笔记02-线性模型

1. 监督学习 2. 数据集的划分 3. 平均平方误差MSE 4. 线性模型Linear Model - y x * w 用穷举法确定线性模型的参数 import numpy as np import matplotlib.pyplot as pltx_data [1.0, 2.0, 3.0] y_data [2.0, 4.0, 6.0]def forward(x):return x * wdef loss(x, y):y_pred…

【原创】springboot+mysql图书共享交流平台设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

HTTP请求走私漏洞原理与利用手段分析

文章目录 前言Http请求走私1.1 漏洞诞生场景1.2 漏洞基本原理1.3 HTTP1.1与2.0 请求走私分类2.1 CL.TE类型实例2.2 TE.CL类型实例2.3 TE.TE混淆实例2.4 漏洞检测工具&#xff1f; 请求走私利用3.1 绕过前端安全控制3.2 揭示前端请求重写3.3 捕获他人请求内容3.4 走私构造反射XS…

用Java链接MySQL数据库的总结

✨个人主页&#xff1a; 不漫游-CSDN博客 前言 在日常开发中&#xff0c;使用Java连接MySQL数据库是一个常见的任务&#xff0c;涉及多个步骤。接着我就带着大家细细看来~ 一.下载.jar 包文件 1.什么是.jar 文件 通俗点讲就是一个压缩包&#xff0c;不过里面存放的都是由Java代…

实验2——基于NAT技术的实验(基于实验1)

目录 实验拓扑图​ 实验要求&#xff1a; 实验思路 基于NAT的简单知识点&#xff1a; 实验步骤 1. 给路由器R1配置IP 2.创建区域 2.1 电信&#xff1a; 2.2 移动&#xff1a; 3.办公区的NAT策略 3.1 服务器映射&#xff08;移动链路&#xff09;​编辑 3.2 写一条分公…

【算法/数列】等差数列子序列算术序列

概念&#xff1a; 等差数列&#xff1a;任意两项的差总等于同一个常数 子数组 &#xff1a;是数组中的一个连续序列。 子序列&#xff1a;是通过从原序列删除零个或多个元素并在不改变顺序的情况下排列其余元素而获得的序列 算术序列&#xff1a;是一个数字列表&#xff0c;其中…

HyperSD - 会画草图就能玩AI绘画,AI一键手绘,实时同步 本地一键整合包下载

字节跳动的Lightning团队发布的新图像模型蒸馏算法Hyper-SD&#xff0c;是一项在图像处理和机器学习领域的重要进展。这项技术通过创新的方法提升了模型在不同推理步骤下的性能&#xff0c;同时保持了模型大小的精简。 基于这个算法模型&#xff0c;一个很实用的功能出现了&am…

Linux RTL8111/RTL8168 不能联网 / 最新版驱动下载安装

注&#xff1a; 机翻&#xff0c;未校对。 如何让 Realtek RTL8111/RTL8168 在 Linux 下工作 这篇文章于 2016 年 8 月在我原来的博客上发布。尽管如今 Linux 下的 RTL8111/RTL8168 网络接口的情况变得越来越稳定&#xff0c;但它们仍然会导致数据包丢失或网络连接不稳定等问题…

【错题集】ruby 和薯条(排序 + 二分 / 双指针)

牛客对应题目链接&#xff1a;ruby和薯条 (nowcoder.com) 一、分析题目 1、解法一&#xff1a;排序 二分。 先排序&#xff0c;然后枚举较⼤值&#xff0c;在 [1, i - 1] 区间找差值的左右端点即可。 2、解法二&#xff1a;排序 前缀和 双指针。 先排序&#xff1b; …

数据结构(Java):力扣Stack集合OJ题

1、括号匹配问题 . - 力扣&#xff08;LeetCode&#xff09; 1.1 思路分析 根据栈的先进后出原则&#xff0c;我们可以这样解决问题&#xff1a; 遍历字符串&#xff0c;遇见左括号就将左括号push入栈&#xff1b;遇见右括号就pop出栈&#xff0c;将出栈的元素和该右括号比较…

JDK14新特征最全详解

JDK 14一共发行了16个JEP(JDK Enhancement Proposals&#xff0c;JDK 增强提案)&#xff0c;筛选出JDK 14新特性。 - 343: 打包工具 (Incubator) - 345: G1的NUMA内存分配优化 - 349: JFR事件流 - 352: 非原子性的字节缓冲区映射 - 358: 友好的空指针异常 - 359: Records…

游戏的无边框模式是什么?有啥用?

现在很多游戏的显示设置中&#xff0c;都有个比较特殊的选项“无边框”。小伙伴们如果尝试过&#xff0c;就会发现这个效果和全屏几乎一毛一样&#xff0c;于是就很欢快地用了起来&#xff0c;不过大家也许会发现&#xff0c;怎么和全屏比起来&#xff0c;似乎有点不够爽快&…

单例模式Singleton

设计模式 23种设计模式 Singleton 所谓类的单例设计模式&#xff0c;就是采取一定的方法保证在整个的软件系统中&#xff0c;对某个类只能存在一个对象实例&#xff0c;并且该类只提供一个取得其对象实例的方法。 饿汉式 public class BankTest {public static void main(…

[图解]SysML和EA建模住宅安全系统-14-黑盒系统规约

1 00:00:02,320 --> 00:00:07,610 接下来&#xff0c;我们看下一步指定黑盒系统需求 2 00:00:08,790 --> 00:00:10,490 就是说&#xff0c;把这个系统 3 00:00:11,880 --> 00:00:15,810 我们的目标系统&#xff0c;ESS&#xff0c;看成黑盒 4 00:00:18,030 --> …

Kafka基础入门篇(深度好文)

Kafka简介 Kafka 是一个高吞吐量的分布式的基于发布/订阅模式的消息队列&#xff08;Message Queue&#xff09;&#xff0c;主要应用与大数据实时处理领域。 1. 以时间复杂度为O(1)的方式提供消息持久化能力。 2. 高吞吐率。&#xff08;Kafka 的吞吐量是MySQL 吞吐量的30…

数据结构初阶(C语言)-复杂度的介绍

在学习顺序表之前&#xff0c;我们需要先了解下什么是复杂度&#xff1a; 一&#xff0c;复杂度的概念 我们在进行代码的写作时&#xff0c;通常需要用到许多算法&#xff0c;而这些算法又有优劣之分&#xff0c;区分算法的优劣则是通过算法的时间复杂度和空间复杂度来决定。 …

【眼疾病识别】图像识别+深度学习技术+人工智能+卷积神经网络算法+计算机课设+Python+TensorFlow

一、项目介绍 眼疾识别系统&#xff0c;使用Python作为主要编程语言进行开发&#xff0c;基于深度学习等技术使用TensorFlow搭建ResNet50卷积神经网络算法&#xff0c;通过对眼疾图片4种数据集进行训练&#xff08;‘白内障’, ‘糖尿病性视网膜病变’, ‘青光眼’, ‘正常’&…

Python+wxauto=微信自动化?

Pythonwxauto微信自动化&#xff1f; 一、wxauto库简介 1.什么是wxauto库 wxauto是一个基于UIAutomation的开源Python微信自动化库。它旨在帮助用户通过编写Python脚本&#xff0c;轻松实现对微信客户端的自动化操作&#xff0c;从而提升效率并满足个性化需求。这一工具的出现&…

SAP PP学习笔记26 - User Status(用户状态)的实例,订单分割中的重要概念 成本收集器,Confirmation(报工)的概述

上面两章讲了生产订单的创建以及生产订单的相关内容。 SAP PP学习笔记24 - 生产订单&#xff08;制造指图&#xff09;的创建_sap 工程外注-CSDN博客 SAP PP学习笔记25 - 生产订单的状态管理(System Status(系统状态)/User Status(用户状态)),物料的可用性检查&#xff0c;生…