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变量的定义

定义规则:

  1. 变量以美元符号($)开头,后面跟变量名;
  2. 变量名是不以数字开头的可包含字母、数字、下划线、横线(连接符);
  3. 写法同css,即变量名和值之间用冒号(:)分隔;
  4. 变量一定要先定义,后使用;

连接符与下划线

通过连接符(-)与下划线(_) 定义的同名变量为同一变量,建议使用连接符(-)

例如

$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变量的详细使用的更多相关文章

  1. 如何设置 sass 全局变量,js如何使用 sass 变量

    关键词:sass全局变量 js引用sass变量 1 如何在样式中使用 scss 的声明的全局变量 假设我们有一个全局的 scss 变量文件/styles/_vars.sass,如下: $red: re ...

  2. 01.1 Windows环境下JDK安装与环境变量配置详细的图文教程

    01.1 Windows环境下JDK安装与环境变量配置详细的图文教程 本节内容:JDK安装与环境变量配置 以下是详细步骤 一.准备工具: 1.JDK JDK 可以到官网下载 http://www.or ...

  3. sass变量

    sass变量用法 1.sass变量必须以$符开头,后面紧跟着变量名 2.变量值和变量名之间就需要使用冒号(:)分隔开(就像CSS属性设置一样) 3.如果值后面加上!default则表示默认值 默认变量 ...

  4. vue-cli3 配置全局less 、sass 变量

    之前在用vue-cli3框架的时候对于常用的less .sass 变量都是需要时就在单文件中引入文件,这样做比较麻烦.那么基于 vue-cli3 如何配置全局的less .sass 变量? <1 ...

  5. Windows环境下JDK安装与环境变量配置详细的图文教程

    原文作者:souvc博文出处:http://www.cnblogs.com/liuhongfeng/p/4177568.html 本节内容:JDK安装与环境变量配置 以下是详细步骤 一.准备工具: 1 ...

  6. Sass变量、嵌套

    声明变量定义变量的语法Sass 的变量包括三个部分: 声明变量的符号“$” 变量名称 赋予变量的值简单的示例,假设你的按钮颜色可以给其声明几个变量: $brand-primary : darken(# ...

  7. 2.sass变量、嵌套、混合(mixin)、继承拓展、@import、comment

    变量.嵌套.混合(mixin).继承拓展.@import.comment 变量的意义 在sass里我们可以定义多个变量来存放颜色.边框等等的样式,这样就可以在下面想要使用样式的时候使用变量了 这样的优 ...

  8. sass 变量

    1.使用变量 $符号标识变量 变量名中  中划线和下划线互通(不包括sass中纯 css 部分) 变量值 css 属性标准值 包括以空格 和 逗号 , 分开的多个属性值 变量可以定义在规则块之外

  9. sass 变量的声明 嵌套

    sass 的默认变量一般是用来设置默认值,然后根据需求来覆盖的,覆盖的方式也很简单,只需要在默认变量之前重新声明下变量即可. $baseLineHeight: 2; $baseLineHeight: ...

  10. Sass变量及嵌套

    1. 变量:SASS允许使用变量,所有变量以$开头. 变量声明:$highlight-color: #000; 注意:变量可以在css规则块定义之外存在.如下例子: $nav-color: #F90; ...

随机推荐

  1. 【FAQ】关于分析服务错误获取所选日期前一天事件数据的解决方法

    开发者通过华为分析服务下载所需的事件数据,这些数据可以导入到开发者自有的分析系统中,用于构建自定义报告或生成受众群体的个性化分析等,从而帮助制定切实有效的营销活动.数据导出支持按照用户属性和导出事件作 ...

  2. HarmonyOS位置服务开发指南

      位置服务开发概述 移动终端设备已经深入人们日常生活的方方面面,如查看所在城市的天气.新闻轶事.出行打车.旅行导航.运动记录.这些习以为常的活动,都离不开定位用户终端设备的位置. 当用户处于这些丰富 ...

  3. 重新整理 .net core 实践篇—————应用层[三十]

    前言 简单介绍一下应用层. 正文 应用层用来做什么的呢? 应用层用来做处理api请求的. [HttpPost] public Task<long> CreateOrder([FromBod ...

  4. JavaSE开发基础--包机制&JavaDoc&Scanner&循环结构&方法&数组

    包机制 如果文件在包中需要 在文件首行添加 package 地址 package pkg1.pkg2.pkg3 import package1 JavaDoc /** * @author作者名 * @ ...

  5. .NET开源强大、易于使用的缓存框架 - FusionCache

    前言 缓存在程序中扮演着提升性能.降低资源消耗.改善用户体验等重要角色,是构建高效.可伸缩.稳定的系统不可或缺的重要组成部分.今天大姚给大家分享一款.NET开源(基于MIT license).强大.易 ...

  6. 拥抱云原生,Fluid结合JindoFS :阿里云OSS加速利器

    简介: Fluid 是一个开源的 Kubernetes 原生的分布式数据集编排和加速引擎,主要服务于云原生场景下的数据密集型应用.在 Fluid 上使用和部署 JindoRuntime 实现数据集的可 ...

  7. 源码解读:KubeVela 是如何将 appfile 转换为 K8s 特定资源对象的

    简介: KubeVela 是一个简单易用又高度可扩展的云原生应用管理引擎,是基于 Kubernetes 及阿里云与微软云共同发布的云原生应用开发模型 OAM 构建.本文主要目的是探索 KubeVela ...

  8. 平安保险基于 SPI 机制的 RocketMQ 定制化应用

    ​简介:本文讲讲述平安保险为何选择 RocketMQ,以及在确定使用消息中间件后,又是如何去选择哪款消息中间件的. 作者:孙园园|平安人寿资深开发 为什么选用 RocketMQ 首先跟大家聊聊我们为什 ...

  9. WPF 使用 Dispatcher 的 InvokeAsync 和 BeginInvoke 的异常处理差别

    一般认为 WPF 的 Dispatcher 的 InvokeAsync 方法是 BeginInvoke 方法的平替方法和升级版,接近在任何情况下都应该在业务层使用 InvokeAsync 方法代替 B ...

  10. 超级好用的 IEC104 主站/客户端模拟器

    目录 超级好用的 IEC104 主站/客户端模拟器 主要功能 软件截图 超级好用的 IEC104 主站/客户端模拟器 官网下载地址:http://www.redisant.cn/iec104clien ...