08.CSS if() 函数

CSS if() 函数允许基于条件(如媒体查询、自定义属性或特性支持)设置不同的属性值,为CSS带来了真正的条件逻辑。

本章概述

CSS if() 函数是CSS中最具革命性的特性之一,它为CSS引入了真正的条件逻辑。通过if()函数,我们可以在单个属性声明中根据不同条件设置不同的值,无需编写多个CSS规则块,大大简化了响应式设计和主题切换的实现。

学习目标

  • 理解CSS if()函数的基本概念和语法

  • 掌握不同类型的条件判断方法

  • 学会在实际项目中应用if()函数

  • 了解if()函数与其他CSS特性的结合使用

  • 掌握浏览器兼容性和渐进增强策略

CSS if()函数基础

基本语法

CSS if()函数的基本语法结构:

go 复制代码
property: if(
  condition-1: value-1;
  condition-2: value-2;
  condition-3: value-3;
  else: default-value
);

简单示例

go 复制代码
.card {
  --status: attr(data-status type(<custom-ident>));

  border-color: if(
    style(--status: pending): royalblue;
    style(--status: complete): seagreen;
    else: gray
  );
}

支持的条件类型

1. 样式查询 - style()

检查CSS自定义属性(CSS变量)的值:

go 复制代码
.card {
  --theme: light;
  --size: medium;
  
  /* 基于主题的背景色 */
  background: if(
    style(--theme: dark): #1a1a1a;
    style(--theme: light): #ffffff;
    else: #f5f5f5
  );
  
  /* 基于尺寸的内边距 */
  padding: if(
    style(--size: large): 2rem;
    style(--size: medium): 1.5rem;
    style(--size: small): 1rem;
    else: 1rem
  );
相关推荐
前端逗比逗14 分钟前
Electron 全维度完整配置手册(最新稳定版,适配 Electron 25+)
前端·electron
xiaobaoyu19 分钟前
聊天问答文字逐步显示实现
前端
随风一样自由26 分钟前
【前端+项目分析】`img` vs `Image`:从两个真实项目看前端图片组件的正确选择
前端·image·img·项目对比分析
倾颜28 分钟前
断线之后,不要重跑 AI:在 POST + NDJSON 中实现可恢复 Agent 流
前端·后端·agent
程序员黑豆37 分钟前
鸿蒙应用开发之父子组件传参:@Prop 装饰器使用教程
前端·后端·harmonyos
信也科技布道师1 小时前
从绝对定位到可维护页面:一次 MasterGo 还原链路的实战复盘
前端
程序员黑豆1 小时前
鸿蒙应用开发之V2状态管理:@Local、@ObservedV2、@Trace 使用教程
前端·后端·harmonyos
锻炼²1 小时前
Edge 地址栏搜索被其他浏览器劫持
前端·edge
Slice_cy1 小时前
Mint 自研框架设计与实现:从重复开发走向配置驱动(三)
前端·后端·架构
JoyT1 小时前
Nuxt 3的核心设计与静态官网应用
前端·javascript·vue.js