• sass 使用小记


    安装sass     npm i  sass -g

    npm 安装sass

    cnpm i sass -g

    查看sass版本信息 sass -version

    使用sass

    sass 是css的预处理器,是css扩展语言,可以帮助我们减少css重复的代码,sass扩展了css3,增加了规则 变量 混入 选择器 继承 内置函数等等特性。文件后缀为.scss;

    一般用法

    sass编译风格 expanted compressed

    sass提供四个编译风格选项:

    nested:默认选项,嵌套缩进的css代码;

    expanted:没有缩进 扩展的css代码

    compact:简洁格式的css代码

    compressed:压缩后的css代码

    生产环境中一般使用最后一个选项:

    sass --style compredded demo.scss demo.css

    (自己动手之后发现只有 expanted和compressed这两个参数可以,compact 和nested参数提示错误)

    sass变量  $变量名      !global      #{$变量名}

    sass变量可以存储以下信息:

    字符串 数字 颜色值 布尔值 列表 null值

    sass变量使用$符号: $variablename:value;

    $primary:blue; 这是全局变量

    !global 设置局部变量为全局的

    h1{
    
    $myColor:green !global;
    
    }

    注意:所有的全局变量我们一般定义在同一个文件中,可以使用@include来包含该文件

    如果sass变量需要嵌套在字符串中,就必须写在#{$变量名称}

    编译后:

    Sass的嵌套规则选择器类似于HTML的嵌套规则

    Sass嵌套选择器

     编译后:

     在嵌套的代码块中,可以使用&引用父元素,比如写伪类a:hover,可以写成:

    Sass嵌套属性

    很多css属性都有同样的属性,可以使用嵌套属性来编写它们:

    demo:

     编译后:

     注意:text后面必须加:;

    注释 /conment/   /*comment*/     /*!comment*/

    sass共有两种注释风格

    标准的css注释:/*comment*/,会保留到编译后的文件;

    单行注释://comment;只保留在sass源文件中,编译后被省略

    在/*后面加一个感叹号,表示这时重要注释。即使在压缩模式编译(前两种注释都不会保留),也会保留这行注释,通常可以用于声明版权信息;

    /*! 重要注释*/

     Sass @import

    Sass可以帮助我们减少css重复代码,节省开发时间。

    我们可以安装不同的属性来创建一些代码文件,如:变量定义的文件 颜色定义的文件 字体相关的文件等。

    Sass导入文件

    类似css,sass支持@import指令

    @import指令可以让我们导入其他文件等内容。

    css @import指令在妹子调用时,都会创建一个额外deHTTP请求,但,Sass @import指令将文件包含在css中,不需要额外的HTTP请求。Sass @import指令语法如下:

     @import filename;

    注意:包含文件时不需要指定文件的后缀,Sass会自动添加后缀.scss.也可以导入css文件,导入后我们就可以在主文件中使用导入文件等变量。

    Sass Partials _

    如果你不希望将一个sass的代码文件编译到一个css文件,你可以在文件名的开头添加一个下划线,这将告诉Sass不要将其编译到css文件。

    但是,在导入语句中我们不需要添加下划线。

    比如:定义的color.scss reset.scss文件,不需要编译成css文件,就可以命名为_color.scss    _reset.scss,在使用的文件中导入(不需要加前缀_):

    @import 'color';
    
    @import 'reset' 

    注意:请不要将带下划线和不带下划线的同名文件放置在同一个目录下,比如,_colors.scss和colors.scss不能同时存在于一个目录下,否则带下划线的文件将会被忽略

    Sass @mixin与@include

    @mixin指令允许我们定义一个可以在整个样式表中重复使用的样式

    @include 指令可以将混入(mixin)引入到文档中

    定义混入:

    @mixin border-1 {
        border: 1px solid $primary;
    }
    使用混入:
    @include border-1;
    混入可以传递参数,同时可以设置默认参数
    @mixin bordered($1px, $color:$success) {
        border: $width solid $color;
    }
    使用
    @include bordered(2px $primary);
    或者直接使用默认值
    @include bordered;
    可变参数,当不确定一个函数或者mixin有几个参数,就可以使用...来设置可变参数
    @mixin box-shadow($shadows...) {
        -moz-box-shadow: $shadows;
        -webkit-box-shadow: $shadows;
        box-shadow: $shadows;
    }
    @include box-shadow(5px 5px 5px #000, -5px -5px 5px rgb(22, 238, 58));
    浏览器的前缀使用mixin
    @mixin transform($property) {
        -webkit-transform: $property;
        -ms-transform: $property;
        transform: $property;
    }
    @include transform(rotate(20deg));
     
    @mixin important-text {
        color: red;
        font-size: 25px;
        font-weight: bold;
        border: 1px solid blue;
    }
    混入中也可以包含混入
    @mixin specialBox {
        @include bordered;
        @include important-text;
    }

     @extend与继承

    @extend指令告诉Sass一个选择器的样式从另一个选择器继承。

    demo:

    .btn-basic {
        border: none;
        padding: 8px 30px;
        text-align: center;
        font-size: 16px;
        cursor: pointer;
        color: #fff;
        border-radius: 20px;
    }
    .btn-1 {
        @extend .btn-basic;
        border: 1px solid red;
        background-color: pink;
    }
    
    .btn-2 {
        @extend .btn-basic;
        border: 1px solid yellow;
        background-color: yellow;
    }
    
    .btn-3 {
        @extend .btn-basic;
        border: 1px solid blue;
        background-color: blueviolet;
    }

    效果

     @extends很好的体现了代码的复用

    颜色函数

    sass提供了一些内置的颜色函数,以便生成系列颜色

    计算功能 + - * /

    sass允许在代码中使用算式:($200px;)

    编译后:

     注意:/需要用括号括起来20px/2,编译后还是20px/2;(20px/2)编译后是10px

    高级用法@for @else @while @each @function

    条件语句@if @else

    @if可以用来判断,配套还有@else命令

     循环语句@for @each @while

    sass支持for循环:

     编译后:

     也支持while循环:

     编译后:

     each命令与for循环作用一样:

     编译后:

     自定义函数@function @return

     

    编译后:

     
  • 相关阅读:
    记最近的玄学东西
    AGC032F One Third
    【集训队作业2018】小Z的礼物
    Codeforces 1214 F G H 补题记录
    如何使用Spark大规模并行构建索引
    一次bug死磕经历之Hbase堆内存小导致regionserver频繁挂掉
    ElasticSearch中分词器组件配置详解
    Hadoop2.7.1配置NameNode+ResourceManager高可用原理分析
    分布式日志收集之Logstash 笔记(一)
    海量可视化日志分析平台之ELK搭建
  • 原文地址:https://www.cnblogs.com/xiaofenguo/p/12883480.html
Copyright © 2020-2023  润新知