当前位置: 首页 > news >正文

Sass基础知识之【变量】

文章目录

  • 前言
  • 变量声明
  • 变量引用
  • 变量名用中划线还是下划线分隔
  • 后言

前言

hello world欢迎来到前端的新世界


😜当前文章系列专栏:Sass和Less
🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误,感谢大家指出)🌹
💖感谢大家支持!您的观看就是作者创作的动力

变量声明

sass变量的声明和css属性的声明很像:

$highlight-color: #F90;

这意味着变量$highlight-color现在的值是#F90。任何可以用作css属性值的赋值都可以用作sass的变量值,甚至是以空格分割的多个属性值,如$basic-border: 1px solid black;,或以逗号分割的多个属性值,如$plain-font: "Myriad Pro"Myriad"HelveticaNeue"、Helvetica、"Liberation Sans"Arialsans-serif; sans-serif;。这时变量还没有生效,除非你引用这个变量——我们很快就会了解如何引用。

与CSS属性不同,变量可以在css规则块定义之外存在。当变量定义在css规则块内,那么该变量只能在此规则块内使用。如果它们出现在任何形式的{…}块中(如@media或者@font-face块),情况也是如此:

$nav-color: #F90;
nav {$width: 100px;width: $width;color: $nav-color;
}//编译后nav {width: 100px;color: #F90;
}

在这段代码中,$nav-color这个变量定义在了规则块外边,所以在这个样式表中都可以像nav规则块那样引用它。$width这个变量定义在了nav的{ }规则块内,所以它只能在nav规则块内使用。这意味着是你可以在样式表的其他地方定义和使用$width变量,不会对这里造成影响。

只声明变量其实没啥用处,我们最终的目的还是使用它们。上例已介绍了如何使用$nav-color$width这两个变量,接下来我们将进一步探讨变量的使用方法。

变量引用

凡是css属性的标准值(比如说1px或者bold)可存在的地方,变量就可以使用。css生成时,变量会被它们的值所替代。之后,如果你需要一个不同的值,只需要改变这个变量的值,则所有引用此变量的地方生成的值都会随之改变。

$highlight-color: #F90;
.selected {border: 1px solid $highlight-color;
}//编译后.selected {border: 1px solid #F90;
}

看上边示例中的$highlight-color变量,它被直接赋值给border属性,当这段代码被编译输出css时,$highlight-color会被#F90这一颜色值所替代。产生的效果就是给selected这个类一条1像素宽、实心且颜色值为#F90的边框。

在声明变量时,变量值也可以引用其他变量。当你通过粒度区分,为不同的值取不同名字时,这相当有用。下例在独立的颜色值粒度上定义了一个变量,且在另一个更复杂的边框值粒度上也定义了一个变量:

$highlight-color: #F90;
$highlight-border: 1px solid $highlight-color;
.selected {border: $highlight-border;
}//编译后.selected {border: 1px solid #F90;
}

这里,$highlight-border变量的声明中使用了$highlight-color这个变量。产生的效果就跟你直接为border属性设置了一个1px $highlight-color solid的值是一样的。最后,我们来了解一下变量命名的实用技巧,以结束关于变量的介绍。

变量名用中划线还是下划线分隔

sass的变量名可以与css中的属性名和选择器名称相同,包括中划线和下划线。这完全取决于个人的喜好,有些人喜欢使用中划线来分隔变量中的多个词(如$highlight-color),而有些人喜欢使用下划线(如$highlight_color)。使用中划线的方式更为普遍,这也是compass和本文都用的方式。

不过,sass并不想强迫任何人一定使用中划线或下划线,所以这两种用法相互兼容。用中划线声明的变量可以使用下划线的方式引用,反之亦然。这意味着即使compass选择用中划线的命名方式,这并不影响你在使用compass的样式中用下划线的命名方式进行引用:

$link-color: blue;
a {color: $link_color;
}//编译后a {color: blue;
}

在上例中,$link-color$link_color其实指向的是同一个变量。实际上,在sass的大多数地方,中划线命名的内容和下划线命名的内容是互通的,除了变量,也包括对混合器和Sass函数的命名。但是在sass中纯css部分不互通,比如类名、ID或属性名。

尽管变量自身提供了很多有用的地方,但是sass基于变量提供的更为强大的工具才是我们关注的焦点。只有当变量与sass的其他特性一起使用时,才能发挥其全部的潜能。接下来,我们将探讨其中一个非常重要的特性,即规则嵌套。

后言

创作不易,要是本文章对广大读者有那么一点点帮助 不妨三连支持一下,您的鼓励就是博主创作的动力

相关文章:

  • 如何利用BI系统
  • Java Web 学习之路(1) —— 前端篇
  • vue分环境打包及案例代码
  • 网络入门---网络编程预备知识
  • 数据结构-选择排序(简单选择、堆)
  • Oracle通过MyBatis执行批量插入与更新问题
  • rabbitmq-server-3.11.10.exe
  • 深度学习-模型调试经验总结
  • PDF转成图片
  • 深度学习毕设项目 深度学习 python opencv 动物识别与检测
  • Error running OrderServiceBoot. Command line is too long.
  • Android MemoryFile 共享内存
  • python | 简易版: pdf 转换为 word 方法
  • linux rsync 和scp区别
  • 基于three.js生成动态波浪背景效果
  • 《深入 React 技术栈》
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • Angular Elements 及其运作原理
  • codis proxy处理流程
  • css的样式优先级
  • Java 网络编程(2):UDP 的使用
  • mysql_config not found
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • 大快搜索数据爬虫技术实例安装教学篇
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • ​2020 年大前端技术趋势解读
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • (ZT)薛涌:谈贫说富
  • (分布式缓存)Redis哨兵
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (未解决)macOS matplotlib 中文是方框
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .NET Core Web APi类库如何内嵌运行?
  • .Net多线程总结
  • ??eclipse的安装配置问题!??
  • @Autowired多个相同类型bean装配问题
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • [ IO.File ] FileSystemWatcher
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [C# 基础知识系列]专题十六:Linq介绍
  • [Editor]Unity Editor类常用方法
  • [ERROR] Plugin 'InnoDB' init function returned error
  • [GXYCTF2019]禁止套娃
  • [HarmonyOS]第一课:从简单的页面开始
  • [leetcode]Flatten Binary Tree to Linked List
  • [Mac软件]Boxy SVG 4.20.0 矢量图形编辑器
  • [oeasy]python0004_游乐场_和python一起玩耍_python解释器_数学运算
  • [python] RRT快速拓展随机树
  • [vue3] 富文本
  • [Windows编程] Windows 7 对多核的支持
  • [导入]上传大文件时,找不到服务器的错误问题!