自定义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中进行切换,如下所示

相关推荐
weixin_5841214315 分钟前
vue内i18n国际化移动端引入及使用
前端·javascript·vue.js
Delroy26 分钟前
一个不懂MCP的开发使用vibe coding开发一个MCP
前端·后端·vibecoding
imkaifan28 分钟前
bind函数--修改this指向,返回一个函数
开发语言·前端·javascript·bind函数
xkxnq33 分钟前
第一阶段:Vue 基础入门(第 7 天)
前端·javascript·vue.js
光头闪亮亮33 分钟前
企业协同办公系统(OA)-【图标选择器】模块开发详解
前端·javascript·vue.js
pas13635 分钟前
22-mini-vue props
前端·javascript·vue.js
pas13637 分钟前
23-mini-vue 实现 emit 功能
前端·javascript·vue.js
百度地图汽车版39 分钟前
【智图译站】基于 LightGBM 与 GNSS 多特征驱动的 NLOS 误差可靠识别方法
前端
有意义1 小时前
用心写好一个登录页:代码、体验与细节的平衡
前端·react.js·交互设计
程序员Agions1 小时前
React 自定义 Hooks 生存指南:7 个让你少加班的"偷懒"神器
前端·javascript