博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Sass]局部变量和全局变量
阅读量:7100 次
发布时间:2019-06-28

本文共 1124 字,大约阅读时间需要 3 分钟。

[Sass]局部变量和全局变量

Sass 中变量的作用域在过去几年已经发生了一些改变。直到最近,规则集和其他范围内声明变量的作用域才默认为本地。如果已经存在同名的全局变量,从 3.4 版本开始,Sass 已经可以正确处理作用域的概念,并通过创建一个新的局部变量来代替。

全局变量与局部变量

先来看一下代码例子:

//SCSS$color: orange !default;//定义全局变量(在选择器、函数、混合宏...的外面定义的变量为全局变量).block {  color: $color;//调用全局变量}em {  $color: red;//定义局部变量  a {    color: $color;//调用局部变量  }}span {  color: $color;//调用全局变量}

 

css 的结果:

//CSS.block {  color: orange;}em a {  color: red;}span {  color: orange;}

 

上面的示例演示可以得知,在元素内部定义的变量不会影响其他元素。如此可以简单的理解成,全局变量就是定义在元素外面的变量,如下代码:

$color:orange !default;

 

$color 就是一个全局变量,而定义在元素内部的变量,比如 $color:red; 是一个局部变量

除此之外,Sass 现在还提供一个 !global 参数。!global 和 !default 对于定义变量都是很有帮助的。

全局变量的影子

当在局部范围(选择器内、函数内、混合宏内...)声明一个已经存在于全局范围内的变量时,局部变量就成为了全局变量的影子。基本上,局部变量只会在局部范围内覆盖全局变量

上面例子中的 em 选择器内的变量 $color 就是一个全局变量的影子。

//SCSS$color: orange !default;//定义全局变量.block {  color: $color;//调用全局变量}em {  $color: red;//定义局部变量(全局变量 $color 的影子)  a {    color: $color;//调用局部变量  }}

 

什么时候声明变量?

我的建议,创建变量只适用于感觉确有必要的情况下。不要为了某些骇客行为而声明新变量,这丝毫没有作用。只有满足所有下述标准时方可创建新变量:

  1. 该值至少重复出现了两次;
  2. 该值至少可能会被更新一次;
  3. 该值所有的表现都与变量有关(非巧合)。

基本上,没有理由声明一个永远不需要更新或者只在单一地方使用变量。

转载于:https://www.cnblogs.com/zhn0823/p/6151677.html

你可能感兴趣的文章
你真的会写Hello World吗
查看>>
深入Spring Boot: 怎样排查 java.lang.ArrayStoreException
查看>>
React 列表、键值与表单
查看>>
阿里出新零售“王炸”:手淘和钉钉打通,7万导购已受益
查看>>
Hibernate小解惑
查看>>
Javascript 开启浏览器全屏模式
查看>>
Java代码规范
查看>>
你不知道的JavaScript·第一部分
查看>>
松下CEO发话,期盼与特斯拉进一步合作自动驾驶
查看>>
Spring集成Jedis(不依赖spring-data-redis)(单机/集群模式)(待实践)
查看>>
张高兴的 Xamarin.Forms 开发笔记:Android 快捷方式 Shortcut 应用
查看>>
“百万年薪一将难求”,新零售人才争夺战怎么打?
查看>>
Firefox 66 发布,阻止网站自动播放声音
查看>>
介绍两个好玩的和Github相关的Chrome扩展
查看>>
他们经营天猫一半的店铺,或迎来史上最大机遇
查看>>
GMGC昆山数娱峰会:VR爆发,差的不只是一层窗户纸
查看>>
8Manage 助力平阳县交通运输局实现招标流程电子化管理
查看>>
硬盘分区时GPT和MBR的区别/选择
查看>>
互联网+汽车,一场打破传统的历史性变革
查看>>
区块链:新零售下一个核心突破点
查看>>