SASS 插值语句 #{ }的使用
在之前我们已经使用用 / 来进行计算,但如下情况不一样
例如
p{
font: 16px/30px Arial, Helvetica, sans-serif;
}
如果需要使用变量,同时又要确保 / 不做除法运算,而是完整地编译到 CSS 文件中,这种情况怎么办???可以使用 #{} 插值语句将变量包裹。
使用插值语法
p {
$font-size: 12px;
$line-height: 30px;
font: #{$font-size}/#{$line-height} Helvetica,
sans-serif;
}
通过 #{}
插值语句可以在选择器、属性名、注释中使用变量:
$class-name: danger;
$attr: color;
$author:'老姚';
/*
* 这是文件的说明部分
@author: #{$author}
*/
a.#{$class-name} {
border-#{$attr}: #F00;
}
编译后
/*
* 这是文件的说明部分
@author: 老姚
*/
a.danger {
border-color: #F00;
}
插值语法说明
插值
一般就指插入值在某个位置,该功能不是sass才有的,其实很多语言都有,例如前段的js,如果我们想输出一个带变量的值
var name = '张三',
age = 20;
console.log('我叫' + name + ',今年' + age + '岁!');
如果有很多变量要输出,或这个串很长的情况是非常麻烦的,所以我们可以用模板字符串输出,像这样
var name = '张三',
age = 20;
console.log(`我叫${name},今年${age}岁!`);
而sass中的插值用的是#{}把变量包裹起来的,变量可以是几乎任意类型的值;
什么时候会用到插值语法?
注释、选择器、属性名等有变量输出时
上面的安全便是该种情况
$class-name: danger;
$attr: color;
$author:'老姚';
/*
* 这是文件的说明部分
@author: #{$author}
*/
a.#{$class-name} {
border-#{$attr}: #F00;
}
用于调式
$themes:( 'light':#f00, 'dark':#000);
@function color($key) {
@if not map-has-key($themes, $key) {
@warn " $themes有key里面不包含 `#{$key}`.";
}
@return map-get($themes, $key);
}
.container {
background-color: color('light');
}
更多使用场景欢迎补充
这些情况不能使用插值语法
不可插值用于变量的一部分
$font-size-big: 40px;
$font-size-base: 20px;
$font-size-small: 12px;
$size:big;
.block {
font-size: $font-size-#{$size}; // Error: Undefined variable.
}
不能在混入里使用
@mixin base {
margin-top: 20px;
background: #F00;
}
$flag: "base";
.navigation {
@include #{$flag}; // Error: Expected identifier.
}
@import后不能使用
$var:'common';
@import #{var};
.block {
font-size: $font-size;
}
还有更多情况...
最后总结
插值语法在使用中还是非常方便的,但有些情况不能使用,但不代表后续不能使用,具体情况根据当前使用的版本来,有可能现目前版本不支持的情况,后续版本可能会支持。
关于sass插件语法#{}的使用就介绍到这里,更多教程请关注“老姚实战营”!
SASS 插值语句 #{ }的使用的更多相关文章
- sass 插值语句的使用
定义了一个 px 转 rem 的函数 @function remP($px) { @return $px / (750 / 15) * 1rem; } 在使用 calc 的时候想要使用函数求值的时候遇 ...
- Sass插值、注释、数剧类型、字符串、值类型
插值#{}使用 CSS 预处理器语言的一个主要原因是想使用 Sass 获得一个更好的结构体系.比如说你想写更干净的.高效的和面向对象的 CSS.Sass 中的插值(Interpolation)就是重要 ...
- 你需要知道的Sass插值
你也许会不时地写写 Sass 玩玩,你也会很享受它带给你各种便利.但还有一件事,你并不一定完全了解:插值 (interpolation) - 将一个占位符,替换成一个值.好了,你们都很幸运,因为今天我 ...
- sass判断语句
@if判断 @if可一个条件单独使用,也可以和@else结合多条件使用 scss.style css.style 三目判断 语法为:if($condition, $if_true, $if_false ...
- MySQL插值语句
insert into Daywork( fdayworkId, fuserId, fdate, fhours, fclaimdate ) values ( 2709, '1@2.3', '2013- ...
- Sass的学习
第一章:Sass简介 一. 什么是CSS预处理器 定义:CSS预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为CSS增加一些编程的特性,将CSS作为目标生成文件,然后开发者就只要使用 ...
- Sass入门:第三章
1.声明变量 Sass声明变量以美元符号"$"开头.例如: $width : 300px; 上面的例子中,Sass的变量包括三个部分: (1)声明变量的符号"$" ...
- Sass学习第一天
Sass学习 网站学习地址: Sass中文网:https://www.sass.hk/docs/#t7-3 Airen的博客:https://www.w3cplus.com/preprocessor/ ...
- css预编译语言 sass scss(变量$var, css嵌套规则,@import规则,@extend,@mixin)
什么是sass Sass 是对 CSS 的扩展,让 CSS 语言更强大.优雅. 它允许你使用变量.嵌套规则. mixins.导入等众多功能, 并且完全兼容 CSS 语法. Sass 有助于保持大型样式 ...
- sass的多种用法
sass的多种用法 主要归纳总结sass的常见用法,作为个人笔记使用,部分知识点并不仔细讲解.具体可参考文档:sass官网 一.嵌套 .svg{ position: absolute; left: 0 ...
随机推荐
- Python 布尔类型
布尔值表示两个值之一:True(真)或False(假). 布尔值 在编程中,您经常需要知道一个表达式是否为True或False. 您可以在Python中评估任何表达式,并获得两个答案之一:True或F ...
- 华为帐号为AITO问界M5助力,打造懂你的智能座舱
12月23日,在华为冬季旗舰新品发布会上,AITO问界M5正式发布.华为赋能的AITO问界M5搭载HUAWEI DriveONE纯电驱增程平台和HarmonyOS智能座舱,并且带来华为终端云服务软硬协 ...
- MogDB 2.1.1 初始化参数概要说明
MogDB 2.1.1 初始化参数概要说明 本文出处:https://www.modb.pro/db/394787 MogDB 数据库安装完成后,官方文档提供了刷新参数的脚本,推荐执行脚本来进行初始化 ...
- CDH5.15.1集群安装部署
CDH集群安装部署 大数据平台软件清单 本文部署的大数据基础平台为CDH,操作系统的版本为CentOS6.8,JDK的版本为1.8,Cloudera Manager与CDH的版本为5.15.1,数据库 ...
- Cloud-computing 实验镜像 chinaskills_cloud_iaas.iso chinaskills_cloud_paas.iso
Cloud-computing 实验镜像 最近因新项目再次进行云计算环境的搭建, 找这两个镜像( 找chinaskills_cloud_paas.iso chinaskills_cloud_iaas. ...
- 重新点亮linux 命令树————查看进程[二十一]
前言 简单介绍一下进程. 正文 进程管理: 进程的概念与进程查看 进程的控制命令 进程的通信方式---信号 守护进程和系统日志 服务管理工具 systemctl SELinux 简介 进程概念: ht ...
- esp8266,arduino,网页显示dht11温湿度,控制继电器开关,局域网智能家居
不说了,上代码,用arduino实现esp8266代码 #include <ESP8266WiFi.h> #include <WiFiClient.h> #include &l ...
- Quick BI产品核心功能大图(五)移动端:让数据在更多业务场景中流通
简介:将数据更好的融入日常工作中,一个重要的前提条件就是多端多渠道的数据触达和办公协同能力. Quick BI凭借移动端交互体验,帮助用户随时随地便捷查看报表,并通过在线协同方式,追踪策略的执行落地 ...
- iLogtail使用入门-K8S环境日志采集到SLS
简介:iLogtail是阿里云中简单日志服务又名"SLS"的采集部分. 它用于收集遥测数据,例如日志.跟踪和指标,目前已经正式开源(https://github.com/alib ...
- Python内置数据类型性能分析
timeit模块 timeit模块可以用来测试一小段Python代码的执行速度. class timeit.Timer(stmt='pass', setup='pass', timer=<tim ...