css实现闪烁渐变背景,@property自定义属性

请添加图片描述

自 2024 年 7 月起,此功能适用于最新的设备和浏览器版本。此功能可能无法在较旧的设备或浏览器中使用。

@property 是 CSS 中一个相对较新的功能,主要用于定义自定义属性(即 CSS 变量)的类型、继承性以及初始值。它允许开发者更好地控制和利用 CSS 自定义属性,尤其是在动画、过渡等动态场景中。

它也是Houdini API中的一种,Houdini 是一组底层 API,它们使开发人员可以直接访问 CSS 对象模型(CSSOM),使开发人员可以编写浏览器可以解析为 CSS 的代码,从而创建新的 CSS 功能。

1. @property语法

@property --property-name {syntax: "<data-type>";inherits: true | false;initial-value: value;
}

--property-name自定义属性的名称,以 -- 开头。
syntax定义该属性的值类型。可以使用 CSS 类型标识符,如 <color><length><number> 等,也可以使用更复杂的类型定义。
inherits:指定该属性是否会继承自父元素,true 表示会继承,false 表示不会继承。
initial-value:指定该属性的初始值。如果在使用时没有显式指定值,则会使用该初始值。

/* 定义自定义属性 --box-size 作为长度类型 */
@property --box-size {syntax: "<length>";inherits: false;initial-value: 100px;
}/* 使用自定义属性 */
.box{width: var(--box-size);height: var(--box-size);
}

2. 案例1:闪烁渐变背景

请添加图片描述

<div class="card"></div>
/* 自定义属性 */
/* 使用了@property规则,其中 syntax: "<color>" 指定了这些属性应该存储颜色值。 */
/* 这些属性不会继承 (inherits: false) 并且有初始值 (initial-value)。 */
@property --card-bg {syntax: "<color>";inherits: false;initial-value: #c0bae8;
}@property --shine-1 {syntax: "<color>";inherits: false;initial-value: #ffbbc0;
}@property --shine-2 {syntax: "<color>";inherits: false;initial-value: #c0aecb;
}.card {margin: 12px;border-radius: 24px;width: 400px;height: 300px;padding: 2rem;/* 使用了两个 radial-gradient (径向渐变)来定义背景颜色 */background: radial-gradient(300px circle at 55% 60% in oklab,var(--shine-2),transparent 100% 100%),radial-gradient(farthest-side circle at 75% 30% in oklab,var(--shine-1) 0%,var(--card-bg) 100%);/* 将两种渐变进行颜色混合 */background-blend-mode: color-burn;/* 为卡片的背景色设置了两个不同的动画效果 *//* alternate:两个动画都是线性且无限循环的,并在每次动画结束时反向播放 */animation: animate-color-1 8s infinite linear alternate,4s animate-color-2 1s infinite linear alternate;
}@keyframes animate-color-1 {from {--shine-1: initial;}to {--shine-1: orange;}
}@keyframes animate-color-2 {from {--shine-2: initial;}to {--shine-2: hotpink;}
}

3. 案例2:尺寸变化动画

请添加图片描述

 <div class="box"></div>
/* 定义自定义属性 --box-size 作为长度类型 */
@property --box-size {syntax: "<length>";inherits: false;initial-value: 100px;
}/* 定义自定义属性 --box-rotation 作为数字类型 */
@property --box-rotation {syntax: "<number>";inherits: false;initial-value: 0;
}/* 定义动画效果 */
@keyframes resize-box {from {--box-size: 100px;}to {--box-size: 200px;}
}@keyframes rotate-box {from {--box-rotation: 0;}to {--box-rotation: 360;}
}/* 应用自定义属性及动画 */
.box {width: var(--box-size);height: var(--box-size);background-color: lightcoral;transform: rotate(var(--box-rotation) deg);animation: resize-box 5s infinite alternate, rotate-box 10s infinite linear;border-radius: 1rem;margin: 20px;
}

4. 浏览器是否支持@property

在这里插入图片描述

参考文档:
🔍MDN:@property
🔍The @property Rule
🔍@property:新一代 CSS 变量现已支持通用浏览器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/51217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux --- 文件系统

1. 文件系统的概念 Linux 文件系统是一种用于管理、存储和组织数据的层次结构&#xff0c;用于在 Linux 操作系统中管理磁盘上的数据存储。它定义了如何在存储介质&#xff08;如硬盘、固态硬盘或 USB 闪存&#xff09;上组织文件和目录&#xff0c;以及如何读取、写入和操作这…

java整合DL645-2007与Dl645-1997

注意事项: 前导字节-一般在传输帧信息前,都要有0~4个FE不等,所以这里要注意,对于主站来说,直接发送4个FE作为前导字节即可。而从站回复,就不一定了,根据厂家不同而不同,有些没有FE的,也有4个FE的,所以对于接受程序,一定要慎重传输次序-所有的数据项都是先传低字节,…

鸿蒙HarmonyOS实战:IPC与RPC设备内进程通信

基本 IPC&#xff08;Inter-Process Communication&#xff09;与RPC&#xff08;Remote Procedure Call&#xff09;用于实现跨进程通信&#xff0c;不同的是前者使用Binder驱动&#xff0c;用于设备内的跨进程通信&#xff0c;后者使用软总线驱动&#xff0c;用于跨设备跨进…

Latex 插入图片或表格导致页面空白过多

如图所示&#xff1a; Latex 插入图片或表格导致页面空白过多 我们可以采用这个方式来减少空白。 \documentclass{article} \usepackage{graphicx} % 包含图形支持 \usepackage{caption} % 提供更多对caption的控制% 设置标题上方和下方的间距 \setlength{\abovecaptionskip}{…

学习记录:js算法(十二):柱状图中最大的矩形

文章目录 柱状图中最大的矩形我的思路网上思路 总结 柱状图中最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 示例 1:上图 输入&#xff1a;…

mac 安装Arthas

mac安装有两种方式 1.第一步安装Arthas 第一种&#xff1a; curl -L https://arthas.aliyun.com/install.sh | sh 第二种jar包形式 curl -O https://arthas.aliyun.com/arthas-boot.jar个人比较推荐第一种因为运行测试成功了 第一种安装后可能会出现一些命令不符合 需…

网安新声 | 从微软“狂躁许可”漏洞事件看安全新挑战与应对策略

网安加社区【网安新声】栏目&#xff0c;汇聚网络安全领域的权威专家与资深学者&#xff0c;紧跟当下热点安全事件、剖析前沿技术动态及政策导向&#xff0c;以专业视野和前瞻洞察&#xff0c;引领行业共同探讨并应对新挑战的策略与可行路径。 近期&#xff0c;微软披露了一个最…

CyberScraper-2077+simple-one-api:使用大模型爬虫

大模型相关目录 大模型&#xff0c;包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步&#xff0c;扬帆起航。 swift与Internvl下的多模态大模型分布式微调指南&#xff08;附代码和数据&#xff…

C语言典型例题50

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 例题4.2 使用do……while语句循环求1234……100&#xff1b; 代码&#xff1a; //《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 //例题4.2 使用do……while语句循环求1234……100&#xff1b;#incl…

web后端(javaEE)开发——servlet

目录 一、web后端开发概述 二、web后端开发环境搭建 1.安装服务器软件 2.安装JDK 三、创建web后端项目 1.创建项目 2.修改设置 3.*在IDEA中集成Tomcat* 四、Servlet创建和应用 1.概述 2.Servlet程序创建与配置 3.分析Servlet程序结构 一、web后端开发概述 web开发&a…

Flutter ListView 实现不同样式 item

我们在实际开发中会创建显示不同类型内容的列表。以下是使用 Flutter 创建此类结构的方法&#xff1a; 1. 创建包含不同类型项目的数据源。 2. 将数据源转换为小部件列表。 创建包含不同类型项目的数据源 项目类型 要表示列表中不同类型的项目&#xff0c;请为每种类型的项目…

基于STM32开发的智能水箱液位控制系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 系统初始化液位监测与控制水泵控制与状态显示Wi-Fi通信与远程监控应用场景 家庭用水系统的液位控制工业水箱的液位管理常见问题及解决方案 常见问题解决方案结论 1. 引言 智能水箱液位控制系…

初学Python如何快速入门(内附详细攻略),一文讲清

目前python可以说是一门非常火爆的编程语言&#xff0c;应用范围也非常的广泛&#xff0c;工资也挺高&#xff0c;未来发展也极好。 Python究竟应该怎么学呢&#xff0c;我自己最初也是从零基础开始学习Python的&#xff0c;给大家分享Python的学习思路和方法。一味的买书看书…

C语言基础(十二)

指针的用法&#xff1a; 测试代码1&#xff1a; #include "date.h" #include <stdio.h> // 函数声明&#xff0c;用于交换两个整数的值&#xff0c;通过指针传递 void swap(int *a, int *b); int main() { int time getTime();int nums[3] {3, 1, 4};…

【Python】列表和元组

文章目录 概念创建列表访问下标通过下标来修改列表元素获取列表长度下标可以写成负数 切片操作省略后边界省略前边界省略前后边界带有步长的切片 遍历列表元素使用 for 循环使用 for 循环访问下标的方式使用 while 循环 新增元素在末尾新增在任意位置新增 查找元素判定元素是否…

ESP RainMaker OTA 自动签名功能的安全启动

【如果您之前有关注乐鑫的博客和新闻&#xff0c;那么应该对 ESP RainMaker 及其各项功能有所了解。如果不曾关注&#xff0c;建议先查看相关信息&#xff0c;知晓本文背景。】 在物联网系统的建构中&#xff0c;安全性是一项核心要素。乐鑫科技对系统安全给予了极高的重视。ES…

【C# 】使用List<实体类>

1. 使用List<实体类> 要在C#中使用List<EntityTemp>并实现查找数据输出&#xff0c;首先需要定义EntityTemp类&#xff0c;并创建一个List<EntityTemp>类型的列表。然后&#xff0c;你可以使用LINQ或其他方法来查找和输出数据。 假设EntityTemp类具有一个…

Transformer总结(三):组件介绍(位置编码,多头注意,残差连接,层归一化,基于位置的前馈网络)

文章目录 一、位置编码1.1 介绍1.2 简单探讨 二、多头注意力2.1 一般的多头注意力机制2.2 解码器中的掩码多头注意力机制&#xff08;Look-ahead Mask&#xff09; 三、残差连接四、层归一化4.1 对比不同的Normalization4.2 Batch Normalization的实现4.3 Layer Normalization的…

Variomes:支持基因组变异筛选的高召回率搜索引擎

《Bioinformatics》2022 Variomes&#xff1a; https://candy.hesge.ch/Variomes Source code&#xff1a; https://github.com/variomes/sibtm-variomes SynVar&#xff1a; https://goldorak.hesge.ch/synvar 文章摘要&#xff08;Abstract&#xff09; 动机&#xff08;Mot…

电子电气架构--- 智能汽车电子架构的核心诉求

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消耗你的人和事&#xff0c;多看一眼都是你的不…