CSS中的动态变量(通过:root选择器和var())

  发布时间:2023-06-15 12:57:55   作者:Evan233:D   我要评论
有时候我们需要动态变换一些皮肤就可以使用这个root定义不同的颜色实现不同的皮肤,下面脚本之家小编就为大家分享一下简单逻辑,需要的朋友可以参考下

使用场景

需要动态计算一个div(A盒子)的left值,该值为这个A盒子的自身宽度,A盒子的自身宽度根据内容变化而变化

使用方法

在css中增加

:root{
  --movenum: 0;
}

在root中自定义变量:‘–movenum’

在JS中

//获取root元素
const root = document.querySelector(':root');
//num为A盒子自身的宽度(通过JS计算获取),将num赋值给自定义变量 "--movenum"
root.style.setProperty('--movenum', num);

在目标css中使用

.closestyle {
  left: var(--movenum);
}

原理

root里面可以声明css全局变量,变量的声明对大小写敏感,且需要在被声明的变量前加上"–",且变量只能作为属性值,不能作为属性名!
声明了css全局变量,就可以调用它,通过var()函数调用
例:

:root {
    --primary-color: #ff434f;
    --secondary-color: #e3e3e3;
    --text-color-darker: #2e2e2e;
    background-color: rgb(190, 26, 26);
}
div {
    width: 500px;
    height: 500px;
    background-color: var(--secondary-color);
}
body {
    background-color: var(--text-color-darker);
}

background-color: var(–secondary-color,#ff434f); var()也可以有第二个参数,表示默认值,如果调用的变量不存在则使用默认值。

另: var()还能定义字符串和数值

--hello:'hello';
--max:1920px;
--marigin:30px 20px 40px;

下面是其它同学的补充

css中的 :root

:root
是一个伪类,表示文档根元素,所有主流浏览器均支持 :root 选择器,除了 IE8 及更早的版本。
在:root中声明相当于全局属性,只要当前页面引用了:root segment所在文件,都可以使用var()来引用。
用 – 这样写法加上样式名称 例如:–background 引用:var(–background)

:root {
    --blue: #007bff;
    --color:red;
    --background:#ccc;
}

var()

var()函数可以代替元素中任何属性中的值的任何部分。var()函数不能作为属性名、选择器或者其他除了属性值之外的值。(这样做通常会产生无效的语法或者一个没有关联到变量的值。)

body {
  background-color: var(--background);  /* 设置背景颜色为#ccc */
}

到此这篇关于CSS中的动态变量(通过:root选择器和var())的文章就介绍到这了,更多相关CSS 动态变量root内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

相关文章

  • CSS盒子模型、圆角边框、盒子阴影效果实现

    盒子模型是网页布局的基础,包括边框、外边距、内边距和实际内容,通过CSS可以控制盒子之间的距离及其外观,如边框样式、边框颜色等,重要属性包括padding和margin,分别控制内
    2024-10-18
  • CSS盒子模型、圆角边框、盒子阴影效果实现

    盒子模型是网页布局的基础,包括边框、外边距、内边距和实际内容,通过CSS可以控制盒子之间的距离及其外观,如边框样式、边框颜色等,重要属性包括padding和margin,分别控制内
    2024-10-18
  • CSS使用filter和backdrop-filter实现高斯模糊效果(示例代码)

    本文详细介绍了CSS3中的两个实现高斯模糊效果的API:filter和backdrop-filter,filter可以直接在图像或背景图上添加多种效果,而backdrop-filter则用于在元素后的区域添加效
    2024-09-26
  • CSS 中的overscroll-behavior属性详解

    overscroll-behavior是CSS中用于控制元素滚动边界行为的属性,可通过设置为auto、contain或none来指定当元素滚动超出边界时的处理方式,本文给大家介绍CSS 中的overscroll-be
    2024-09-26
  • css实现四角边框效果

    本文介绍了如何通过CSS实现具有四角边框的效果,使用了linear-gradient和background属性来创建边框,并设置了背景尺寸,文章还提供了Vue中图片资源引用的示例代码,适合想要为
    2024-09-24
  • CSS的:required和:optional伪类:如何增强表单字段的视觉识别

    在网页设计中,使用CSS的:required和:optional伪类可以有效增强表单字段的视觉识别,提升用户体验和表单的可访问性,这两个伪类分别用于区分必填和非必填字段,通过添加不同的
    2024-09-18
  • css边框修饰实现代码

    本文介绍了CSS中设置边框的几种主要属性,包括边框样式(如实线、虚线等)、边框宽度(可以单独设置每个方向的宽度)、边框颜色(支持单独为每个方向设置颜色)以及圆角边框
    2024-09-18
  • 如何利用CSS实现视差滚动和抖动效果

    通过CSS3和JS,实现前端炫酷的视差滚动和抖动效果,本文详细介绍了相关CSS样式和JS脚本,通过监听滚动条位置并调整元素的top属性来达到视差效果,当到达特定位置时,利用CSS动画
    2024-09-13
  • CSS文本超出后隐藏并显示省略号及其他浏览器兼容方案(推荐)

    在CSS中,可以通过简单的样式设置实现文本超出隐藏并显示省略号的效果,这些方法主要适用于WebKit内核的浏览器,对于其他浏览器,可采用JavaScript或CSS Fallback等方案,文
    2024-09-11
  • css 自定义变量 var()案例分析

    这篇文章主要介绍了css 自定义变量 var()案例分析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,感兴趣的朋友跟随小编一起看看吧
    2024-08-28

最新评论