写点什么

Chrome 引入了 CSS 的 If 函数,在 CSS 中原生支持条件样式

作者:Daniel Dominguez

  • 2025-08-17
    北京
  • 本文字数:1100 字

    阅读完需:约 4 分钟

大小:492.48K时长:02:48
Chrome引入了CSS的If函数,在CSS中原生支持条件样式

Chrome 137 引入了对新的CSS if函数的支持,首次在原生样式表中直接引入条件逻辑,减少了对预处理器或基于 JavaScript 回退的需求。这个特性允许开发人员直接在属性值中编写声明式条件样式。

 

if()函数是不断发展的 CSS 值和单位模块第 5 级规范的一部分,目前仅在 Chrome 137 及更高版本中独有。它支持使用三种内联条件类型进行条件-值评估:style()、media()和 supports()。它提供了一种灵活而强大的方式,根据自定义属性、媒体查询或特性支持动态应用样式。

 

熟悉SassPostCSS 的开发人员可能会发现这个函数特别有用,因为它将类似的逻辑带入了原生 CSS。一些开发人员认为这是消除对 Sass 等预处理器需求的关键一步。

 

这次发布中的一个主要功能是能够在不离开 CSS 文件的情况下使用 if()函数进行实时条件样式设置。语法允许开发人员传递一个条件,后跟一个值,以及可选的 else 子句。

 

通过将自定义属性与 HTML 元素上的 data-status 属性配对,以下示例展示了 if()如何根据属性的值为面板分配不同的背景颜色:

 

.panel {  --status: attr(data-status type(<custom-ident>));  background-color: if(    style(--status: proposed): blue;    style(--status: assigned): pink;    style(--status: progress): orange;    style(--status: complete): green;    else: gray  );}
复制代码

 

这个版本在开发者社区引起了不同的反应。一些评论者批评了这种语法,称其十分混乱一位开发人员将其比作三目运算符:

 

我真的不喜欢它的语法。它基本上就是一个三目运算符,只是 if()内部的所有内容都放在了 if()里面,而不是通常的 if (condition)。

 

与任何 CSS 新功能一样,if()函数也有其局限性。在撰写本文时,if()函数仅在 Chrome 137+中支持,与 Firefox 或 Safari 的对齐有限。因此,建议开发人员谨慎使用,并提供回退以确保兼容性。社区对兼容性和缺乏统一标准感到担忧,将 Chrome采取的方法比作微软的旧策略“拥抱、扩展和消灭”,即对于 Internet Explorer,他们会制定自己的标准。

 

其他人对这一变化持更积极的态度。在最近的一段视频中,Theo Browne 探索了这个新特性,并强调了它在大规模样式系统的优势,在使用传统方法时,一个位置错误或顺序错误的伪类可能会破坏 UI。有了 if(),这种风险降低了,因为条件逻辑包含在样式声明内部,一旦满足条件,浏览器就会应用匹配的值并忽略其余部分。Theo 总结说,他不仅对这个特性感到兴奋,而且感到“CSS 的未来从未如此光明”。

 

Chrome 137自 2025 年 5 月已起进入稳定版本状态。开发人员现在可以在支持的环境中开始使用 if(),并可以通过 W3C 的CSS值和单位模块第5级跟踪规范的进展。

 

原文链接:

https://www.infoq.com/news/2025/08/chrome-css-if-function/

2025-08-17 12:001

评论

发布
暂无评论

产品训练营第一周作业

万顷湖天碧

产品经理训练营

两行代码修复了解析MySQL8.x binlog错位的问题!!

冰河

MySQL 中间件 Binlog 二进制日志 数据异构

产品经理训练营Week1作业

Mai

一文讲弄懂什么是vlan、三层交换机、网关、DNS、子网掩码、MAC地址

作业 - 认识产品经理

Geek_971380

产品经理训练营

Worktile 王涛的经营之道:7 年牵引式破局 | TGO 科技领袖三十人

李忠良

28天写作

no.1 作业

郭栋

产品经理训练营

作业:项目经理岗位备忘录

顾庆隆

项目经理

产品经理训练营-第一周作业

玖玖

极客大学产品经理训练营

终结代孕乱象,一场科技与黑产的赛跑

脑极体

智能对话系统产品经理岗位拆解

元二

类别型特征

IT蜗壳-Tango

机器学习 七日更

第一章 作业

青葵

学习

产品经理第一课作业

产品经理训练营

极客产品训练营第一课作业

HaoJi

产品经理训练营

产品经理第0期训练营第一周作业提交

Krystal

【作业-01】认识产品经理

西西里奇

产品经理 产品经理训练营

认识产品经理

夏天的风

产品经理

产品岗位观察小结

庞玉坤

产品经理 产品经理训练营 极客大学认识产品经理 极客大学产品经理训练营

产品经理训练营第一课作业

Jobs

产品经理训练营

Dreamed Job?

顾远山

作业 极客大学产品经理训练营 Job Model

第一周作业

戎帅

PM 第一次作业

郭栋

产品经理训练营

产品经理训练营第一周学习总结

月亮 😝

认识产品经理-通过岗位模型了解自己的发展方向与空间20210119

WooBeyna

第一章 总结

青葵

学习笔记2

产品经理训练营第一章作业

黑小白白白

极客大学产品经理训练营

产品岗位对比&自身岗位

novaln🍉

产品经理训练营第一章作业-G20210639010157

苏格图德

产品经理训练营

产品经理岗位需求分布

jpcr987i

高情商与低情商:有效的沟通

北风

交流 情商

Chrome引入了CSS的If函数,在CSS中原生支持条件样式_大前端_InfoQ精选文章