本文介绍: scss是一门很好用的类css,在现实中的工作当中几乎都是不采用css的,而是使用css语言全局变量元素声明变量局部变量是在元素声明变量重复声明局部变量覆盖全局变量局部变量值后加上!让css更加简洁适应性更强,阅读性更佳,更易于代码的维护等诸多好处。特性丰富,scss拥有比其他的任何css扩展语言更丰富的功能特性

1.scss是什么

scsscss的一种预处理语言

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

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

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

scsssass3.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;
    }

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

原文地址:https://blog.csdn.net/m0_71225058/article/details/129396638

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_15147.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注