返回顶部
首页 > 资讯 > 前端开发 > node.js >如何分析css变量
  • 719
分享到

如何分析css变量

2024-04-02 19:04:59 719人浏览 安东尼
摘要

如何分析CSS变量,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。用过sass或less的都知道,主要他们可以有嵌套和变量以及函数功能,其实

如何分析CSS变量,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

用过sass或less的都知道,主要他们可以有嵌套和变量以及函数功能,其实在原生css中,已经开始逐渐支持,诚然目前只有你我熟知,而他人还处在萌芽中,了解css变量,你会发现CSS从此变得异常强大。

变量的声明

声明变量的时候,变量名前面要加两根连词线(--)

// 局部声明
body {
  --foo: #ed145b;
  --bar: #F7EFD2;
}
// 全局声明
:root{
  --foo: #ed145b;
  --bar: #F7EFD2;
}

例如上面我们申明了2个变量:--foo和--bar,其实你只需要把它们理解成css自定义属性看待,它们与color、font-size等正式属性没有什么不同,只是没有默认含义,注意css变量名称是区分大小写的,通常我们写的css是不区分。

你可能会问,为什么选择两根连词线(--)表示变量?因为$foo被 Sass 用掉了,@foo被 Less 用掉了。为了不产生冲突,官方的 CSS 变量就改用两根连词线了。

命名规范

关于命名这个东西,各种语言都有些显示,例如CSS选择器不能是数字开头,js中的变量是不能直接数值的,但是,在CSS变量中,这些限制通通没有,如:

:root {
  --1: #369;
}
body {
  background-color: var(--1);
}

不能包含$,[,^,(,%等字符,普通字符局限在只要是“数字[0-9]”“字母[a-zA-Z]”“下划线_”和“短横线-”这些组合,但是可以是中文,日文或者韩文,例如:

body {
  --深蓝: #369;
  background-color: var(--深蓝);
}

var()函数

声明了变量后我们自然是想要去获取并且使用,那么var()函数就是用于读取变量

p {
  color: var(--foo);
  border::1px solid var(--bar);
}

var()第二个参数

color: var(--foo, #ED145B); //第二个参数就是默认值,假设--foo为空情况下,会使用#ED145B

var()函数还可以用在变量的声明

:root {
  --primary-color: red;
  --loGo-text: var(--primary-color); // 上面刚声明,这里就可以使用
}

变量值只能用作属性值,不能用作属性名

.foo {
  --side: margin-top;
  
  var(--side): 20px;
}

变量值类型

如果变量值是一个字符串,可以与其他字符串拼接

--bar: 'hello';
--foo: var(--bar)' world';
// 示例
body:after {
  content: '--screen-category : 'var(--screen-category);
}

如果变量值是数值,不能与数值单位直接连用

foo {
  --gap: 20;
  
  margin-top: var(--gap)px;
 
  margin-top: calc(var(--gap) * 1px);
}

如果变量值带有单位,就不能写成字符串


.foo {
  --foo: '20px';
  font-size: var(--foo);
}

.foo {
  --foo: 20px;
  font-size: var(--foo);
}

作用域

同一个 CSS 变量,可以在多个选择器内声明。读取的时候,优先级最高的声明生效。这与 CSS 的"层叠"(cascade)规则是一致的

<style>
  :root { --color: blue; }
  div { --color: green; }
  #alert { --color: red; }
  * { color: var(--color); }
</style>
<p>蓝色</p>
<div>绿色</div>
<div id="alert">红色</div>

上面代码中,三个选择器都声明了--color变量。不同元素读取这个变量的时候,会采用优先级最高的规则,因此三段文字的颜色是不一样的。

兼容性处理

对于不支持 CSS 变量的浏览器,可以采用下面的写法。

a {
  color: #7F583F;
  color: var(--primary); // 应该很好理解,如果这里读不出值,那么并不会覆盖上面的color
}

也可以使用@support命令进行检测

a {
@supports ( (--a: 0)) {
  
}
@supports ( not (--a: 0)) {
  
}

javascript操作(精华)

JavaScript 也可以检测浏览器是否支持 CSS 变量

const isSupported =
  window.CSS &&
  window.CSS.supports &&
  window.CSS.supports('--a', 0);
if (isSupported) {
  
} else {
  
}

JavaScript操作CSS变量的写法如下

// 设置变量
document.body.style.setProperty('--primary', '#7F583F'); //局部
document.documentElement.style.setProperty('--primary', '#7F583F'); //全局
// 读取变量
document.body.style.getPropertyValue('--primary').trim(); /局部
document.documentElement.style.getPropertyValue('--primary').trim(); /全局
getComputedStyle(document.documentElement).getPropertyValue('--time'); // 全局,如果是在css表中设置的需要这种方式获取
// '#7F583F'
// 删除变量
document.body.style.removeProperty('--primary'); //局部
document.documentElement.style.removeProperty('--primary'); //全局

这意味着,JavaScript 可以将任意值存入样式表。下面是一个监听事件的例子,事件信息被存入 CSS 变量

const docStyle = document.documentElement.style;
document.addEventListener('mousemove', (e) => {
  docStyle.setProperty('--mouse-x', e.clientX);
  docStyle.setProperty('--mouse-y', e.clientY);
});

这意味着,JavaScript 可以将任意值存入样式表。下面是一个监听事件的例子,事件信息被存入 CSS 变量

const docStyle = document.documentElement.style;
document.addEventListener('mousemove', (e) => {
  docStyle.setProperty('--mouse-x', e.clientX);
  docStyle.setProperty('--mouse-y', e.clientY);
});

那些对 CSS 无用的信息,也可以放入 CSS 变量

--foo: if(x > 5) this.width = 10;

上面代码中,--foo的值在 CSS 里面是无效语句,但是可以被 JavaScript 读取。这意味着,可以把样式设置写在 CSS 变量中,让 JavaScript 读取。所以,CSS 变量提供了 JavaScript 与 CSS 通信的一种途径。

关于如何分析css变量问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网node.js频道了解更多相关知识。

--结束END--

本文标题: 如何分析css变量

本文链接: https://lsjlt.com/news/88721.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何分析css变量
    如何分析css变量,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。用过sass或less的都知道,主要他们可以有嵌套和变量以及函数功能,其实...
    99+
    2024-04-02
  • CSS变量的示例分析
    这篇文章将为大家详细讲解有关CSS变量的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。随着 Web应用程序变得越来越大,CSS变得越来越大,越来越冗长,而且混乱不...
    99+
    2024-04-02
  • shell编程中如何分析bash变量
    本篇文章为大家展示了shell编程中如何分析bash变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。导读shell编程--bash变量介绍 ,变量是计算机内存的单元,其中存放的值可以改变。当&nb...
    99+
    2023-06-05
  • JavaScript变量实例分析
    本篇内容主要讲解“JavaScript变量实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript变量实例分析”吧!   &nbs...
    99+
    2024-04-02
  • mysql变量用法实例分析【系统变量、用户变量】
    本文实例讲述了mysql变量用法。分享给大家供大家参考,具体如下: 本文内容: 系统变量 用户变量 局部变量 首发日期:2018-04-18 系统变量: 系统变量就是系统...
    99+
    2022-05-15
    mysql 变量 系统变量 用户变量
  • JavaScript变量和变换实例分析
    本篇内容主要讲解“JavaScript变量和变换实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript变量和变换实例分析”吧!1.声明使用变量之前务必通过关键字var进行声明...
    99+
    2023-06-30
  • 如何在CSS中使用 var()变量
    今天就跟大家聊聊有关如何在CSS中使用 var()变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。定义和使用CSS变量与任何其他CSS定义一样,变量遵循相同的范围和继承规则。使用它...
    99+
    2023-06-08
  • Linux的全局变量、局部变量、环境变量实例分析
    本文小编为大家详细介绍“Linux的全局变量、局部变量、环境变量实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux的全局变量、局部变量、环境变量实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-06-28
  • 量表如何分析?
    一、什么是量表 量表是一种测量工具,通常用来测量人们的主观态度、意见或价值观念。我们经常会在问卷中使用量表对调查对象进行测量,最常见到的就是李克特量表。 ‍1、定义:李克特量表 李克特量表是最常用的量表,是由美国社会心理学家李克特于1932...
    99+
    2023-10-10
    python 开发语言
  • JavaScript变量的示例分析
    这篇文章主要为大家展示了“JavaScript变量的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript变量的示例分析”这篇文章吧。基本类...
    99+
    2024-04-02
  • Swift变量的示例分析
    这篇文章主要介绍了Swift变量的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Swift 是苹果推出的编程语言,专门针对 OS X 和 iOS 的应用开发。Swif...
    99+
    2023-06-27
  • Shell变量的示例分析
    这篇文章主要介绍了Shell变量的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先不要管Shell的版本,来看看Shell 变量,在Shell中有三种变量:系统变量,...
    99+
    2023-06-09
  • 如何在css中如何定义使用变量
    今天就跟大家聊聊有关如何在css中如何定义使用变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。CSS中原生的变量定义语法是:--*,变量使用语法是:var(--*)  ;...
    99+
    2023-06-15
  • PHP常量和变量之变量引用的示例分析
    小编给大家分享一下PHP常量和变量之变量引用的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!关于PHP常量和变量之变量引用分别写两段代码,如下所示:<php$fo =8;//$fo的值为8,将8赋值...
    99+
    2023-06-15
  • 如何分析linux中shell变量$#,$@,$0,$1,$2的含义
    本篇文章为大家展示了如何分析linux中shell变量$#,$@,$0,$1,$2的含义,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。linux中shell变量$#,$@,$0,$1,$2的含义解释...
    99+
    2023-06-28
  • Vue如何使用CSS自定义变量
    目录在 css 自定义变量的功能以及出来许久了,但实际开发中大家使用并不多。归其原因是因为 less、sass 等预处理器已经拥有定义变量的功能,以及Vue、react很方便设置 s...
    99+
    2024-04-02
  • CSS变量如何实现暗黑模式
    这篇文章主要介绍CSS变量如何实现暗黑模式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用 CSS变量 和 @media查询 实现暗黑模式。 CSS Dark Mode我定义了变量以设置主题的颜色,我建议...
    99+
    2023-06-08
  • css如何使用变量保持一致
    小编给大家分享一下css如何使用变量保持一致,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用变量保持一致保持一致性的一个好方法是使用 CSS 变量或预处理器变量...
    99+
    2023-06-27
  • 如何解析Python 变量命名规则和定义变量
    这篇文章给大家介绍如何解析Python 变量命名规则和定义变量,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、定义变量语法规则:变量名 = 值定义变量的语法规则中间的‘=',并不...
    99+
    2023-06-22
  • python如何分配列表变量
    这篇文章主要介绍了python如何分配列表变量,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。分配列表变量在Python中我们可以将列表的值分...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作