scss理解及用法

1.scss是什么

scss是css的一种预处理语言

scss是一门很好用的类css,在现实中的工作当中几乎都是不采用css的,而是使用类css语言。

例如:scss、less、stylus等,所以学习一门css语言是必须得,由于我用的比较多的就是scss了,所以我在这里就简要介绍一下我理解的scss用法

首先它是一款强化css的辅助工具,在css的基础上怎加了:

  • 变量(variables)

  • 嵌套(nested nutes)

  • 混合(mixin)

  • 导入(inline imports)等等一些功能

scss是sass3.0后的一个版本,后缀名为.scss

2.为什么要使用scss

scss的优势也是很多的,主要分为一下几点:

  1. scss完全兼容所有版本的css。

  1. 特性丰富,scss拥有比其他的任何css扩展语言更丰富的功能和特性。

  1. 行业认可,社区庞大,大多数科技企业和成百上千名开发者为技术提供支持。

  1. 有无数的框架使用scss,如:bootstrap等。

  1. 让css更加简洁,适应性更强,阅读性更佳,更易于代码的维护等诸多好处。

3.scss的使用

一、注释分为三种:


/* */css中显示,
//css中不显示,
/*重要注释!*/压缩不会被删掉

二、命令导入外部的css,less,scss文件:


@import "../assets/scss/home.scss";

三、声明变量:


$+变量名+:+变量值;如下:
    $color : red; //声明颜色变量 $color
    $width: 100px; //声明宽度变量 $width
    $left: left;

四、区分默认变量:

默认变量只需要在变量值后加上 !default , 用来设置默认值 ,对默认变量进行重新声明可以实现覆盖默认值;如:


    $color : yellow !default; //声明默认变量 $color
    $color : purple; //根据需求覆盖默认变量

五、区分全局变量和局部变量:

全局变量是元素外声明的变量,局部变量是在元素里声明的变量,重复声明时局部变量会覆盖全局变量;

局部变量值后加上 !global 关键词可以使得局部变量变成全局变量;


  $color : red; //声明颜色变量 $color
  $width: 100px; //声明宽度变量 $width
  $left: left;

 .div {
        $border-color: rgba(28, 46, 208, 0.8); //局部变量
        $bd-color: rgb(223, 15, 195) !global; //加!global变为全局变量
        width: $const;
        height: $const;
        color: $color;
        border: 5px solid $border-color;

        .spans {
            font-size: 30px;
            color: $color;
        }
    }

 .div2 {
        width: $const;
        height: $const;
        border: 5px solid $bd-color; //使用加了!global得全局变量
        border-#{$left}: 10px solid red; //变量嵌套引用:即字符串插值,需要使用 #{} 来进行包裹
    }

六、 继承

.class 使用 @extend


.div2 {
        width: 100px;
        height: 50px;
        border: 5px solid #f00; 
       }
.div3 {
        @extend .div2; //继承.div2中得所有样式
       }

七、占位符 %

使用% 声明的代码块,如果不被@extend调用的话就不会被编译。编译出来的代码会将相同的代码合并在一起,代码变得十分简洁。


 %m5 {
        background-color: rgb(12, 174, 228);
    }

    .div3 {
        @extend %m5;
    }

八、混合@mixin

·重复代码块,使用混合@mixin命令定义,以及使用@include调用该mixin


// 在使用@mixin和@include时,传入参数和默认值
    @mixin normalStyle ($width , $height , $color , $defaultValue : orange) {
        width: $width ;
        height: $height ;
        color: $color ;
        background-color: $defaultValue ;
    }

    .div4 {
        //在此处使用并传参
        @include normalStyle (300px, 100px, green, rgb(188, 40, 40));
    }

九、SCSS使用编程式方法


 // ·条件语句 
    .div4 {
        p {
            @if 1+1>3 {
                border: 1px solid blue;
            }
            @else {
                border: 2px dashed palevioletred;
            }
        }
    }

十、SCSS中的三种循环

  1. for循环

在sass中的@for循环有两种方式:

① @for $i from <start> through <end>

② @for $i from <start> to <end>

其中$i表示变量,start表示开始值,end表示结束值;

through表示包括end这个数值;to表示不包括end这个数值;


 @for $i from 1 to 3 {
        .item-#{$i} {
            width: 100px;
            height: 100px;
            border : #{$i}px solid #f00;
        }
    }
//最终编译为:
.item-1 {
            width: 100px;
            height: 100px;
            border : 1px solid #f00;
        }
.item-2 {
            width: 100px;
            height: 100px;
            border : 2px solid #f00;
        }

@for $i from 1 through 3 {
        .item-#{$i} {
            width: 100px;
            height: 100px;
            border : #{$i}px solid #f00;
        }
    }
//最终编译为:
.item-1 {
            width: 100px;
            height: 100px;
            border : 1px solid #f00;
        }
.item-2 {
            width: 100px;
            height: 100px;
            border : 2px solid #f00;
        }
.item-3 {
            width: 100px;
            height: 100px;
            border : 3px solid #f00;
        }
2.while循环

只要@while后面的条件为true就会执行,直到表达式值为false时停止循环;

    $m : 2;
 
    @while $m >0 {
        .item-#{$m} {
            width: 100px * $m ;
            height: 100px;
            background-color: aquamarine;
        }
 
        $m : $m - 1;
    }
//最终编译为:
 .item-#2 {
            width: 100px * 2 ;
            height: 100px;
            background-color: aquamarine;
        }
  .item-#1 {
            width: 100px * 1 ;
            height: 100px;
            background-color: aquamarine;
        }
3.each 语法

    @each $item in item-1,
    item-2 {
        //$item就是遍历了in关键词后面的类名列
        .#{$item} {
            background-color: purple;
        }
    }

    //会编译成 .item-1, .item-2 {background-color:purple;}

十一、自定义函数及使用

使用@function 自定义函数及使用


    @function double($sn ) {
        //SCSS允许自定义函数
        @return $sn * 2;
    }

    .function {
        width: double(200px); //使用在SCSS中自定义的函数
        height: 100px;
        border: 1px solid red;
    }

以上就是本人总结的一些常用的方法功能,有不足之处还请多多指教。

03-26
### SCSS 使用指南及相关问题解答 #### 配置 SCSS Lint 工具 SCSS Lint 是一种用于检查 SCSS 文件代码质量的工具,其核心功能通过 `.scss-lint.yml` 配置文件实现。该配置文件支持多种规则设定,例如 `linters` 参数可定义具体的校验器及其行为[^1]。此外,还可以利用 `ignore` 和 `exclude` 来排除不需要检查的文件或目录。 以下是典型的 `.scss-lint.yml` 配置示例: ```yaml linters: Indentation: enabled: true width: 2 ignore: - "node_modules/**/*" exclude: - "vendor/**/*.scss" ``` #### Rollup 中集成 SCSS 编译 为了在现代前端构建流程中使用 SCSS,可以通过 rollup-plugin-scss 实现自动化编译。首先需引入插件并完成基本配置[^2]。以下是一个完整的 Rollup 配置实例: ```javascript import scss from &#39;rollup-plugin-scss&#39;; export default { input: &#39;src/main.js&#39;, output: { file: &#39;dist/bundle.css&#39;, format: &#39;cjs&#39; }, plugins: [ scss({ includePaths: [&#39;src/styles&#39;], sourceMap: false, outputStyle: &#39;expanded&#39; // 设置为 expanded 表示不压缩输出 }) ] }; ``` 上述代码展示了如何将 SCSS 插件嵌入到 Rollup 构建过程中,并提供了额外选项来调整样式表的行为。 #### Animate.scss 的应用技巧 Animate.scss 提供了一组预设动画效果类,开发者只需简单调用即可快速增强页面交互体验[^3]。然而,在实际项目中需要注意激活这些动画的状态管理逻辑。具体来说,`.is-animated` 类的作用至关重要——它决定了何时触发对应的视觉变化。 下面是一段 HTML 结构配合 animate.scss 功能的例子: ```html <div class="animated fadeInUp is-animated">欢迎访问</div> ``` 这里运用了 fade-in 向上移动的效果组合方式,同时附加状态标记以确保渲染时机准确无误。 --- ####
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值