当前位置: 首页 > news >正文

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

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年的时间。不过也是可以值得期待的。

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JavaScript中的面向对象编程
  • 数据高效交互丨DolphinDB Redis 插件使用指南
  • 数据结构(Java):树二叉树
  • 前端数据加密方式
  • 《Windows API每日一练》9.13资源-鼠标位图和字符串
  • 基于Java+SpringMvc+Vue技术的药品进销存仓库管理系统设计与实现系统(源码+LW+部署讲解)
  • 什么叫图像的中值滤波,并附利用OpenCV和MATLB实现均值滤波的代码
  • Go 初始化一个字典
  • Android人脸解锁源码解析
  • el-table 动态添加删除 -- 鼠标移入移出显隐删除图标
  • 2024前端面试题之Vue3
  • 【面试题】防火墙的部署模式有哪些?
  • 3D问界-深入理解骨骼绑定与蒙皮绑定在三维动画中的角色
  • 从数据仓库到数据湖(下):热门的数据湖开源框架
  • NAS 必备导航页 Homarr 可视化配置 布局简单且美观
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • const let
  • fetch 从初识到应用
  • jquery ajax学习笔记
  • js
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Mocha测试初探
  • nodejs:开发并发布一个nodejs包
  • Object.assign方法不能实现深复制
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 高性能JavaScript阅读简记(三)
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 巧用 TypeScript (一)
  • 使用Swoole加速Laravel(正式环境中)
  • 项目管理碎碎念系列之一:干系人管理
  • 1.Ext JS 建立web开发工程
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 说说我为什么看好Spring Cloud Alibaba
  • 通过调用文摘列表API获取文摘
  • ​用户画像从0到100的构建思路
  • # Redis 入门到精通(一)数据类型(4)
  • # 数论-逆元
  • (¥1011)-(一千零一拾一元整)输出
  • (1)(1.11) SiK Radio v2(一)
  • (1)虚拟机的安装与使用,linux系统安装
  • (10)STL算法之搜索(二) 二分查找
  • (day 12)JavaScript学习笔记(数组3)
  • (TOJ2804)Even? Odd?
  • (vue)页面文件上传获取:action地址
  • (二) 初入MySQL 【数据库管理】
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (黑马C++)L06 重载与继承
  • (蓝桥杯每日一题)love
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (四)c52学习之旅-流水LED灯
  • (算法)Game
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)Windows2003安全设置/维护
  • .bat批处理出现中文乱码的情况