sass变量的详细使用
sass变量同javascript变量,可以用来存储一些信息,并且可以重复使用。
先来对比一下css中的变量
同css变量对比
CSS 变量是由 CSS 作者定义的,它包含的值可以在整个文档或指定的范围内重复使用。
用CSS变量来实现简单的代码:
:root{
--font-size:18px;
}
.container{
font-size: var(--font-size);
}
Sass变量
$font-size:14px;
.container{font-size: $font-size;}
编译后:
.container { font-size: 14px; }
可以看出,两种达到的效果一样,但sass更符合程序员的编程模式的方式,可编程、可维护、可扩展....
更多强大的功能是css变量没法做到的
Sass变量的定义
定义规则:
- 变量以美元符号($)开头,后面跟变量名;
- 变量名是不以数字开头的可包含字母、数字、下划线、横线(连接符);
- 写法同css,即变量名和值之间用冒号(:)分隔;
- 变量一定要先定义,后使用;
连接符与下划线
通过连接符(-)与下划线(_) 定义的同名变量为同一变量,建议使用连接符(-)
例如
$font-size:14px;
$font_size:16px;
.container{font-size: $font-size;}
编译后:
.container { font-size: 16px; }
局部变量
在选择器内容定义的变量,只能在选择器范围内使用,这种变量称为局部变量
.container{
$font-size:14px;
font-size: $font-size;
}
如果这样用就不行
.container{
$font-size:14px;
font-size: $font-size;
}
.footer{
font-size: $font-size;
}
全局变量
定义后能全局使用的变量
第一种:在选择器外面的最前面定义的变量
$font-size:16px;
.container{
font-size: $font-size;
}
.footer{
font-size: $font-size;
}
第二种:使用 !global 标志定义全局变量
.container{
$font-size:16px !global;
font-size: $font-size;
}
.footer{
font-size: $font-size;
}
变量值类型
变量值的类型可以有很多种
支持 6 种主要的数据类型
- 数字,1, 2, 13, 10px
- 字符串,有引号字符串与无引号字符串,"foo", 'bar', baz
- 颜色,blue, #04a3f9, rgba(255,0,0,0.5)
- 布尔型,true, false
- 空值,null
- 数组 (list),用空格或逗号作分隔符,1.5em 1em 0 2em, Helvetica, Arial, sans-serif
- maps, 相当于 JavaScript 的 object,(key1: value1, key2: value2)
例如:
$layer-index:10;
$border-width:3px;
$font-base-family:'Open Sans', Helvetica, Sans-Serif;
$top-bg-color:rgba(255,147,29,0.6);
$block-base-padding:6px 10px 6px 10px;
$blank-mode:true;
$var:null; // 值null是其类型的唯一值。它表示缺少值,通常由函数返回以指示缺少结果。
$color-map: (color1: #fa0000, color2: #fbe200, color3: #95d7eb);
$fonts: (serif: "Helvetica Neue",monospace: "Consolas");
.container{
$font-size:16px !global;
font-size: $font-size;
@if $blank-mode {
background-color:#000;
}@else{
background-color:#fff;
}
content: type-of($var);
content:length($var);
color: map-get($color-map,color2);
}
.footer{
font-size: $font-size;
}
// 如果列表中包含空值,则生成的CSS中将忽略该空值。
.wrap{
font: 18px bold map-get($fonts, "sans");
}
默认值
定义变量时可以用!default来定义默认值
$color:#333;
// 如果$color之前没定义就使用如下的默认值
$color:#666 !default;
.container{
border-color: $color;
}
sass变量的详细使用的更多相关文章
- 如何设置 sass 全局变量,js如何使用 sass 变量
关键词:sass全局变量 js引用sass变量 1 如何在样式中使用 scss 的声明的全局变量 假设我们有一个全局的 scss 变量文件/styles/_vars.sass,如下: $red: re ...
- 01.1 Windows环境下JDK安装与环境变量配置详细的图文教程
01.1 Windows环境下JDK安装与环境变量配置详细的图文教程 本节内容:JDK安装与环境变量配置 以下是详细步骤 一.准备工具: 1.JDK JDK 可以到官网下载 http://www.or ...
- sass变量
sass变量用法 1.sass变量必须以$符开头,后面紧跟着变量名 2.变量值和变量名之间就需要使用冒号(:)分隔开(就像CSS属性设置一样) 3.如果值后面加上!default则表示默认值 默认变量 ...
- vue-cli3 配置全局less 、sass 变量
之前在用vue-cli3框架的时候对于常用的less .sass 变量都是需要时就在单文件中引入文件,这样做比较麻烦.那么基于 vue-cli3 如何配置全局的less .sass 变量? <1 ...
- Windows环境下JDK安装与环境变量配置详细的图文教程
原文作者:souvc博文出处:http://www.cnblogs.com/liuhongfeng/p/4177568.html 本节内容:JDK安装与环境变量配置 以下是详细步骤 一.准备工具: 1 ...
- Sass变量、嵌套
声明变量定义变量的语法Sass 的变量包括三个部分: 声明变量的符号“$” 变量名称 赋予变量的值简单的示例,假设你的按钮颜色可以给其声明几个变量: $brand-primary : darken(# ...
- 2.sass变量、嵌套、混合(mixin)、继承拓展、@import、comment
变量.嵌套.混合(mixin).继承拓展.@import.comment 变量的意义 在sass里我们可以定义多个变量来存放颜色.边框等等的样式,这样就可以在下面想要使用样式的时候使用变量了 这样的优 ...
- sass 变量
1.使用变量 $符号标识变量 变量名中 中划线和下划线互通(不包括sass中纯 css 部分) 变量值 css 属性标准值 包括以空格 和 逗号 , 分开的多个属性值 变量可以定义在规则块之外
- sass 变量的声明 嵌套
sass 的默认变量一般是用来设置默认值,然后根据需求来覆盖的,覆盖的方式也很简单,只需要在默认变量之前重新声明下变量即可. $baseLineHeight: 2; $baseLineHeight: ...
- Sass变量及嵌套
1. 变量:SASS允许使用变量,所有变量以$开头. 变量声明:$highlight-color: #000; 注意:变量可以在css规则块定义之外存在.如下例子: $nav-color: #F90; ...
随机推荐
- dev DEV控件:gridControl常用属性设置
引用:https://www.cnblogs.com/kingsliu/articles/6145679.html 1.隐藏最上面的GroupPanelgridView1.OptionsView.Sh ...
- C#对接部标JT808协议实现北斗定位设备数据接收服务端
一.前言介绍 开发一套能够支撑几万台北斗定位设备数据接收的服务端,用于接收北斗定位器定位数据的平台.项目基于windows平台,C#语言开发框架Net Framework4.8,TCP主要基于Supe ...
- Qt:MD5加密
#include <QCryptographicHash> QString source_value = "123456"; // 待加密原始数据 QCryptogra ...
- PDF库 libharu 简单操作
libharu官网:http://libharu.org/ 直接下载下来编译就可以使用了(*:我下载的版本是:libharu-libharu-v2.4.3-0-g8dbcfe4.tar) 一.编译 ...
- HarmonyOS音频开发指导:使用AVPlayer开发音频播放功能
如何选择音频播放开发方式 在HarmonyOS系统中,多种API都提供了音频播放开发的支持,不同的API适用于不同音频数据格式.音频资源来源.音频使用场景,甚至是不同开发语言.因此,选择合适的音频 ...
- mysql 重新整理——存储引擎[三]
前言 要知道存储引擎这个东西,不是存储的意思,而是io操作. MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛 ...
- vue3 快速入门系列 —— 其他API
其他API 前面我们已经学习了 vue3 的一些基础知识,本篇将继续讲解一些常用的其他api,以及较完整的分析vue2 和 vue3 的改变. 浅层响应式数据 shallowRef shallow 中 ...
- 力扣609(java&python)-在系统中查找重复文件(中等)
给你一个目录信息列表 paths ,包括目录路径,以及该目录中的所有文件及其内容,请你按路径返回文件系统中的所有重复文件.答案可按 任意顺序 返回. 一组重复的文件至少包括 两个 具有完全相同内容的文 ...
- 力扣231(java)-2的幂(简单)
题目: 给你一个整数 n,请你判断该整数是否是 2 的幂次方.如果是,返回 true :否则,返回 false . 如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方. 示例 ...
- 如何玩转 WebGL 并行计算
简介: 如今在 Web 端使用 WebGL 进行高性能计算已有不少实践,例如在端智能领域中的 tensorflow.js,再比如可视化领域中的 Stardust.js. 作者 | 沧东 来源 | ...