Scss学习--关于Scss指令@at-root、@warn、@debug、@error

本文深入解析Sass预处理器中的@at-root、@debug、@warn和@error指令的使用方法及场景,帮助读者掌握如何利用这些指令进行更高效、灵活的样式编写与调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@at-root

将标签放到根路径下

.parent{
    width: 600px/960px*100%;
    height: 300px/960px*100%;

    @at-root .child{
        width: 200px;
        height: 250px;
    }
    .brother{
        background-color: palegreen;
        @at-root .his_son{
            font-size: 25px;
        }
    }
}
//编译为
.parent{
    width: 600px/960px*100%;
    height: 300px/960px*100%;
    .brother{
        background-color: palegreen;
        @at-root .his_son{
            font-size: 25px;
        }
    }
}
 .child{
        width: 200px;
        height: 250px;
    }
@at-root(with…)
@at-root(without…) 移动到…指令之外
默认的@at-root 就是 @at-root(rule)
// @media p{

     div{
              overflow: hidden;
         @at-root .his_son {
             color: #000;
         }

       @at-root (with: media) { /*!不会跳出media*/
            p{
                color: red;
             }
         }

        @at-root (without:media){ /*!将会跳出media*/
             p{
                 color: red;
             }
         }
   }
}
@debug

将sasscript表达式的值打印到标准错误输出流,它对于调试Sass文件非常有用

	@debug 10em+12em;

注意:可以在控制台中看到结果(cmd也可以)

@warm

指令将sasscript表达式的值打印到标准错误输出流
对于那些需要警告用户不推荐使用或从轻微mixin使用错误中恢复的库来说
它非常有用

@mixin adjust-location($x, $y){
 @if unitless($number: $x){
     @warn "Assuming #{$x} to be in pixels";
     $x:1px * $x;
 };
 @if unitless($number: $y){
     @warn "Assuming #{$y} to be in pixels";
     $y:1px * $y;
 };
 position: relative;
 left: $x;
 top: $y;
}
.divbox{
 @include adjust-location(1,2);
}
div{
 height: 20px;
 width: 20px;
 @warn "Dont't set unnumber type";
}

注意:可以在控制台中看到结果(cmd也可以)

@error

调用时的错误判断,将sasscript表达式的值作为致命错误抛出,包括一个很好的堆栈跟踪,对于验证mixin和函数的参数非常有用

@mixin adjust-location($x, $y){
    @if unitless($number: $x){
        @error "$x may not be unitless,was #{$x}";
    };
    @if unitless($number: $y){
        @error "$y may not be unitless,was #{$y}";
    };
    position: relative;
    left: $x;
    top: $y;
}

$error_x:10;
.divbox{
    @include adjust-location(1,2px);
}

注意:可以在控制台中看到结果(cmd也可以)

gyp ERR! configure error gyp ERR! stack Error: EACCES: permission denied, mkdir '/root/vue/admin/node_modules/node-sass/.node-gyp' gyp ERR! System Linux 3.10.0-1160.119.1.el7.x86_64 gyp ERR! command "/root/node-v14.15.1-linux-x64/bin/node" "/root/vue/admin/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library=" gyp ERR! cwd /root/vue/admin/node_modules/node-sass gyp ERR! node -v v14.15.1 gyp ERR! node-gyp -v v8.4.1 gyp ERR! not ok Build failed with error code: 1 npm WARN notsup Unsupported engine for node-sass@9.0.0: wanted: {"node":">=16"} (current: {"node":"14.15.1","npm":"6.14.8"}) npm WARN notsup Not compatible with your version of node/npm: node-sass@9.0.0 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.3 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules/webpack-dev-server/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules/watchpack-chokidar2/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! node-sass@9.0.0 postinstall: `node scripts/build.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the node-sass@9.0.0 postinstall script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2025-04-01T04_39_46_911Z-debug.log
最新发布
04-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值