自定义CSS属性(@property)解决自定义CSS变量无法实现过渡效果的问题

且看下面的代码:

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>demot</title>
  </head>
  <body>
    <div class="demoBox"></div>
  </body>
  <style>
    :root {
      --height: 100px;
    }
    @property --width {
      syntax: "<length>";
      inherits: false;
      initial-value: 100px;
    }
    .demoBox {
      width: var(--width);
      height: var(--height);
      background-image: linear-gradient(45deg, red, blue);
      animation: run 2s infinite alternate;
      transition: all 1s;
    }
    @keyframes run {
      from {
        --width: 100px;
        --height: 100px;
      }
      to {
        --width: 200px;
        --height: 200px;
      }
    }
  </style>
</html>

在上面的代码中,通过自定义属性的--width能够在100px到200px中实现过渡效果;自定义变量--height只能在100px与200px中进行切换,如下所示

相关推荐
徐同保3 分钟前
GPT-4.5来了
前端
没资格抱怨29 分钟前
TypeScript中的接口(interface)
前端·javascript·typescript
浮生如梦_1 小时前
基于C#PictureBox加载显示视觉图像
开发语言·前端·图像处理·计算机视觉·c#·视觉检测
那些免费的砖1 小时前
Uppy - 免费开源、功能强大的新一代 web 文件上传组件,支持集成到 Vue 项目
前端·vue.js·开源
阿丽塔~1 小时前
react 路由跳转的几种方式
前端·javascript·react.js
PreciousZZ1 小时前
ieee1500协议 十
前端
傻小胖1 小时前
React面试葵花宝典之二
前端·react.js·面试
小华同学ai1 小时前
大厂开源项目,真的太爽啦,字节跳动出品!这个设计系统开源神器,让你的产品颜值与效率齐飞
前端·vue.js·github
ekskef_sef2 小时前
【SpringBoot3】面向切面 AspectJ AOP 使用详解
开发语言·前端·python
AAA酒席代吃刘哥包顺礼金2 小时前
简化大型 Vue + Vite 项目的路径管理:path 模块与 @ 别名的完美结合
前端·vite