Sass 变量的声明与使用
本节我们学习 Sass 中的变量,那么什么是变量呢? Sass 中的变量可以用来存储一些信息,并且重复使用。变量可以存储的信息包括字符串、数字、布尔值、颜色值等等。
声明变量
Sass 中声明变量需要用到 $
符号,格式为:
$变量名: 变量值;
示例:
例如下面我们定义一个变量,并给这个变量赋了一个颜色值:
$color:red; .xkd{ color: $color; a{ background-color: $color; } }
执行编译命令,编译后的 CSS 代码如下所示:
.xkd { color: red; } .xkd a { background-color: red; }
定义好变量后,在需要使用到 red
颜色时,就可以直接使用变量名来代替这个颜色值。当然,现在这样看我们还是不太清楚为什么要使用变量,没有看出变量的优势。但是如果我们在一个大型项目中,定义变量会很有用,例如我们可能会在多个地方使用同一个颜色值,如果后期需要对这个颜色值进行修改,那么一个一个去找会很麻烦,而如果定义了变量,就只需要修改变量的值即可。
默认变量
Sass 的默认变量需要在值的后面加上 !default
。默认变量一般用来设置默认值,也就是说当某个变量定义了一个默认值,但是又出现另外一个值时,无论谁先被定义,默认值都会被覆盖。
示例:
看下面这段代码:
$fsize: 14px; .xkd{ $fsize: 12px!default; font-size: $fsize; }
编译成 CSS 代码后:
.xkd { font-size: 14px; }
上述代码中,我们先定义了一个全局变量 $fsize
并赋值为 14px
,然后在 .xkd
选择器中给 $fsize
变量赋了一个 12px
的值,按理来说会优先使用 12px
,但是因为在 12px
后面加了一个 !default
,变成了一个默认值,最后输出的 CSS 代码中,使用的是 14px
。
变量的作用域
Sass 中支持两种类型的变量,即局部变量和全局变量。默认情况下定义在选择器之外的为全局变量,全局变量的作用域为全局,可以被所有的选择器访问。定义在选择器内的为局部变量,局部变量的作用域只能在当前层级上有效果。下面我们通过一个例子来看一下局部变量和全局变量的使用。
示例:
$color: #ccc; // 全局变量 .one{ $color: #eee; // 局部变量 background-color: $color; } .two{ background-color: $color; }
编译成 CSS 代码:
.one { background-color: #eee; } .two { background-color: #ccc; }
上述代码中,可以看到我们定义了一个全局变量 $color
,然后又在 .one
中定义了一个局部变量 $color
。此时.one
和 .two
同时引用 $color
,编译成 CSS 代码后,.one
中使用的是局部变量的值,而 .two
中使用的是全局变量的值。
可以看出,局部变量的作用域就只在声明这个变量的当前代码块中,而全局变量的作用域则在全局。当使用了某个变量时,首先会在当前代码块中查找,如果找不到则向上一层代码块中查找,一直到找到为止。
!global 关键字
我们可以通过关键字 !global
来设置全局变量,也就是说我们只要在一个变量后面使用这个关键字,那么这个变量就为全局变量。
示例:
我们来看一个例子:
.one{ $num: 14px !global; font-size: $num; } .two{ font-size: $num; }
编译成 CSS 代码:
.one { font-size: 14px; } .two { font-size: 14px; }
在上述代码中,原本在.two
选择器中是不能访问 .one
选择器中的变量的,但是因为变量 $num
使用了 !global
关键字,所以 $num
变成了一个全局变量,这样就可以 .two
选择器访问啦。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
有赞统一接入层架构演进
本文系云原生应用最佳实践杭州站活动演讲稿整理。杭州站活动邀请了 Apache APISIX 项目 VP 温铭、又拍云平台开发部高级工程师莫红波、蚂蚁金服技术专家王发康、有赞中间件开发工程师张超,分享云原生落地应用的经验心得,以下是张超《有赞统一接入层架构演进》分享内容。 张超,有赞中间件团队开发工程师,网关、Service Mesh 领域的专家,热衷技术,对 Golang、Nginx、Ruby 语言等有深入的研究。 大家好,我是来自有赞的张超,有赞中间件团队的开发工程师。今天给大家带来有赞接入层架构演进的分享。 先简单给大家介绍下有赞接入层,内部名为 YZ7,从概念来讲它与网关比较接近,是基于 OpenResty 和 Nginx 来实现的,主要是有标准 C 模块,自研发的 Nginx C 模块,以及基于 lua 实现的模块。它作为有赞业务流量的公网入口,提供 Traffic Shaping,包括限流、安全相关的像 WAF、请求路由等功能,请求路由包含标准的蓝绿发布、灰色发布功能,负载均衡等方面的功能。今天的分享,主要是从下面从三个方面来深入解析: 旧版接入层架构痛点 新架构设计分析 新...
- 下一篇
Nginx 战斗准备:优化指南
大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,如果你真的想挤压出nginx的性能,你必须更深入一些。 在本指南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能。需要注意一点,这不是一个全面的微调指南。这是一个简单的预览——那些可以通过微调来提高性能设置的概述。你的情况可能不同。 基本的 (优化过的)配置 我们将修改的唯一文件是nginx.conf,其中包含Nginx不同模块的所有设置。你应该能够在服务器的/etc/nginx目录中找到nginx.conf。 首先,我们将谈论一些全局设置,然后按文件中的模块挨个来,谈一下哪些设置能够让你在大量客户端访问时拥有良好的性能,为什么它们会提高性能。 本文的结尾有一个完整的配置文件。 高层的配置 nginx.conf文件中,Nginx中有少数的几个高级配置在模块部分之上。 user www-data; pid /var/run/nginx.pid; ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- 设置Eclipse缩进为4个空格,增强代码规范