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

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

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

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

例如

Bash
p{
    font: 16px/30px Arial, Helvetica, sans-serif; 
}

如果需要使用变量,同时又要确保 / 不做除法运算,而是完整地编译到 CSS 文件中,这种情况怎么办???可以使用 #{} 插值语句将变量包裹。

使用插值语法

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

相关推荐

历数高通骁龙哪些处理器会继续风光或爆发于2015年

【处理器】高通骁龙810处理器规格谁是最快的手机处理器”目前尚存争议,但很快,这个问题将不会再有第二个答案,高通在Comput全新的旗舰产品骁龙810/808,我敢打赌,这绝对是有史以来性能最为强大的...

S6新赛季第一周数据一览:五大赛区风格大揭秘

【本文系友站星竞界LOL站独家稿件,未经授权严禁商业转载,否则将追究法律责任】(原文地址)一、BAN角排名这里统计的是各赛区的前十名BAN角,那我们可以从这其中总结出的信息有:①Ryze、GP、Lu...

到户外来场派对吧!Bose SoundLink Max手提音箱

近日,Bose经典的便携式蓝牙音箱SoundLink系列迎来新成员——BoseSoundLinkMax。正如名字中的“Max”一样,它应该是我体验过体积最大的SoundLink系列产品了。12cm...

第二周数据整理 揭秘五大赛区风格区别

一、BP率排名这里统计的是各赛区BP率占据前十的角色,从这其中我们可以了解到,统治赛场的到底是哪些角色:S-tier(S级):瑞兹、船长、Lulu、牛头,四大魔头稳定占据BP榜的前五名。A-tier(...

飞利浦全新5000系列电须刀评测,权威平台齐赞全能理容

“看脸时代”,男人的面子问题一路影响到竞争激烈的职场。需要清爽干练的形象助你获得宝贵职场优势?光剃须当然是不够的!全球男士理容领导品牌飞利浦,推出全新5000系列多功能电须刀,创新Turbo+劲能加速...

美国研发柔性屏幕手机,宣称让苹果、三星无还手之力

得力于三星的曲面屏让原来已经是红海的智能手机树立新的标杆。曲面屏,一方面被认为是提高手机舒适度、创新用户使用页面呈现等的“革命性”产品和技术。但是这些还不够,可是就在这几天,美国的手机制造商BLU在I...

ECC给i.MXRT1170 FlexRAM带来了哪些变化?

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是恩智浦i.MXRT1170上Cortex-M7内核的FlexRAMECC功能。ECC是“ErrorCorrectingCode”...

三星Note 4电池续航测试 “爷爷辈”爱抢镜

【巴士数码】9月30日讯:近日韩国媒体PlayWare对三星GalaxyNote4的电池续航能力进行了一番检验。他们测试的是在韩国本土销售的Exynos版本,型号SM-N910,配备电池规格322...

【专题】总有一种适合你,16款家庭影院扬声器推荐(连载2)

前情回顾Bowers&Wilkins宝华韦健FormationUltimateMovieCollection/Panorama3如果你是90后年轻人,追求时尚,追求简洁,那么Bowers...

日产免提短信助手:食之无味,弃之可惜

开车时想发短信了怎么办?估计不少人都能想到语音命令。日产最近在它的NissanConnect上也更新了一个功能:免提短信助手。可以在开车的时候通过语音控制的方法来输入短信,在美国,这项功能前三年免费,...

多店铺运营必看!5个工具轻松规避平台风控

在跨境电商和无货源模式日益火热的今天,越来越多的卖家开始布局多店铺运营,以分散风险、提高收益。然而,多店铺运营最让人头疼的问题之一就是各大电商平台的风控。**如何合理规避风控,确保店铺长期稳定运营?*...

杭州骄傲!出生14个月查出脑瘫,17岁破了世界纪录,两枚金牌!妈妈的话令人瞬间破防

10月24日,杭州运动员诸吉在全国第十一届残疾人运动会暨第八届特殊奥林匹克运动会上,奋力拼搏,取得女子20分4*50米自由泳接力第一名,并超世界纪录;女子S5级200米自由泳第一名、50米自由泳第三名...

双轮电动车选什么品牌好?爱尔威S5

很多人都在跟小编抱怨说一款合心意的代步工具怎么就那么难找,其实,想拥有一款满意的代步产品很简单。今天小编就给各位推荐一款代步性能非常出色的代步工具,它就是爱尔威S5越野平衡车。爱尔威S5越野平衡车,全...

铁威马TRAID阵列管理工具,更高的磁盘空间利用率

数字化时代,数据量也在迅速的增长,NAS网络存储的出现,就很好的解决了数据存储刚需,利用NAS存储数据成为越来越多人的选择。但随着存储数据量的增长,在我们购入更大容量的硬盘时,也希望旧的硬盘也能继续发...

兼具两项稀有配置的松下S5M2X(松下s5 参数)

大家好,我是ET,欢迎来到相机笔记。在目前的全画幅微单相机中,松下S5M2X兼具两项“稀有配置”:其一,它与S5M2都内置了小型散热风扇,长时间录制视频/流媒体传输不过热。其二,它能将视频直接录制到移...