百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

SASS 插值语句 #「 」的使用(sas insert)

myzbx 2025-03-24 18:33 22 浏览

在之前我们已经使用用 / 来进行计算,但如下情况不一样

例如

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插件语法#{}的使用就介绍到这里,更多教程请关注“老姚实战营”!

相关推荐

Excel【VBA教程】数组了解一下(vba数组通俗讲解)

本文于2023年9月26日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!内容提要数组详解大家好,我是冷水泡茶,今天我们一起来了解一下【数组】它在内存中运算,速度比在单元格中快得多。...

VBA数组合并报表的五大进阶方法(vba两个数组合并为一个数组)

针对财务多源数据整合需求,精选5种高效数组合并技术,涵盖垂直堆叠、水平拼接、条件筛选合并等场景,均通过内存计算避免Excel交互延迟,确保财务数据处理效率最大化。方法1:动态扩容数组实现跨表行追加适用...

JavaScript DOM 内容操作常用方法和 XSS 注入攻击

当项目的安全团队找上门告诉您,您开发的项目存在XSS安全漏洞,作为一个开发人员,就问您慌不慌??HTML内容写入的时候,如果稍不注意就会触发隐藏BOSS漏洞XSS。XSS漏洞原理就是利用...

判断变量是否为数组(判断变量是否为数组的函数)

大家好,我是前端西瓜哥,今天带大家学习在JS中如何判断一个对象是否为数组。Array.isArray最好的写法是使用Array.isArray(val)。因为该方法能正确判断iframe传过...

2023-03-13:给定一个整数数组 A,坡是元组 (i, j),其中 i < j 且 A[i]

2023-03-13:给定一个整数数组A,坡是元组(i,j),其中i<j且A[i]<=A[j],这样的坡的宽度为j-i。找出A中的坡的最大宽度,如果不存在,返...

世界上形形色色的“奇葩”小望远镜②

上一篇我们介绍了在探索伽玛射线暴、超新星上大放光彩的小望远镜,但天文学所研究的领域却是非常的多,比如我们所好奇的暗物质以及太阳系外行星等,那么在这些方面做出突出贡献的“奇葩”小望远镜都是谁呢?1、蜻蜓...

C#解析多层嵌套的JSON数组(多层嵌套json转换成map)

首先引用开源类库:Newtonsoft.Json.dll,目前最低支持.NET3.5版本。官方帮助文档:http://www.newtonsoft.com/json/help/html/Samples...

Vlookup函数的这7个应用技巧都不掌握,那就真的Out了

查询引用,用到最多的函数为Vlookup,但你真的会用吗?其实,Vlookup函数除了常规的查询引用外,还有多种使用技巧一、Vlookup函数:功能及语法结构。功能:在指定的数据范围内返回符合查询要...

C语言-闲聊一维、二维数组(c语言中二维数组的定义和使用)

①若a[i]为一维数组则有,a[0],为数组的一个元素。a[i]=*(&a[i]),为数组的一个元素。a+i=&a[i],为元素a[i]的地址。*(*(a+i))=*(*&a[...

Excel常用技能分享与探讨(5-宏与VBA简介之VBA的数组与集合)

总结数组:适合处理固定大小、类型一致、需要快速访问的数据。集合:适合动态增删、键值查找或混合类型数据。根据具体需求选择合适的数据结构,可显著提升代码效率和可读性。一、从仓库管理理解数据结构(场景化入门...

数据结构串和数组(一)(数据结构串的概念)

一、串的基本概念串是由零个或多个字符组成的有限序列。记作str="a0a1…an-1"(n≥0)。串中所包含的字符个数n称为串长度,当n=0时,称为空串。一个串中任意连续的字符组成的子...

C语言进阶教程:指针数组与数组指针

在C语言中,指针和数组是两个核心且紧密相关的概念。当它们结合时,就产生了指针数组(ArrayofPointers)和数组指针(PointertoanArray)。这两者在语法、含义和用途上都...

一篇文章搞懂数组的所有知识点(一篇文章搞懂数组的所有知识点怎么写)

1.一维数组数组是一种数据结构,用来存储多个相同类型的数据,并通过索引来访问每个元素。概念描述示例代码什么是数组?数组是一种数据结构,用来存储一组相同类型的值。你可以把它想象成一个排好序的储物柜,每...

这些Java基础知识,诸佬们都还记得嘛(学习,复习,面试均可)

方法重载和方法重写的区别方法重写重写体现在继承关系上。在Java中,子类继承父类,子类就会具备父类所以的特征,以及父类的方法和变量比如动物类有“叫”的方法,小狗小猫分别继承了动物类,重写方法时就可以...

js将list转化为tree格式的几种写法

最近在考虑一个树状结构存储。最终需要将list转化为tree格式源数据示例源数据共401条[{"menuId":"5f50c5fb8f0d74536bbfb7a4"...