zoukankan      html  css  js  c++  java
  • Sass/Scss

      一、什么是Sass/Scss.

      Sass和Scss是指的是同一个东西。Sass的语法更近ruby,而Scss更接近css代码。Sass/Scss是对css的扩展,但是scss/sass不能之间直接运行在浏览器中,需要编译成css.

      

      二、在命令行中安装Sass和使用

      首先需要在电脑上安装node.然后使用npm安装Sass. 

      npm install -g sass
    

      常用的命令

      sass main.scss main.css
      sass --watch main.scss:main.css

      三、Sass的语法

      a、nesting(嵌套) 

    #main p {
      color: #00ff00;
      width: 97%;
    
      .redbox {
        background-color: #ff0000;
        color: #000000;
      }
    }

      编译后:

    #main p {
      color: #00ff00;
      width: 97%; 
    } #main p .redbox { background-color: #ff0000; color: #000000;
    }

      属性嵌套:  

    .container {
      display: -webkit-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      flex:{
        direction: column;
        wrap: nowrap;
      }
      align-items: center;
      padding: 3rem 0;
      box-sizing: border-box;
    }

      编译后:

    .container {
      display: -webkit-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      flex-direction: column;
      flex-wrap: nowrap;
      align-items: center;
      padding: 3rem 0;
      box-sizing: border-box;
    }

      伪类选择器的嵌套: 

    .documentation-links .documentation-link {
      text-decoration: none;
      color: map-get($colors,main);
      display: block;
      padding: $size-tiny;
      border: $border-default;
      &:hover,
      &:active {
        color: white;
        background: map-get($colors,secondary);
        border-color: map-get($colors,secondary);
      }
    }

     

      编译后 

    .documentation-links .documentation-link {
      text-decoration: none;
      color: map-get($colors,main);
      display: block;
      padding: $size-tiny;
      border: $border-default;
    }
    
    .documentation-links .documentation-link:hover,
    .documentation-links .documentation-link:active {
      color: white;
      background: map-get($colors,secondary);
      border-color: map-get($colors,secondary);
    }

      b、Variables(变量)

      变量名字需要以$符号开始。

    $main-color:#521751;
    .sass-introduction {
      border: 0.05rem solid $main-color;
      background: #fae5ff;
      padding: 2rem;
      text-align: center;
      box-shadow: 0.2rem 0.2rem 0.1rem #ccc;
      width: 90%;
      box-sizing: border-box;
    }

      编译后:  

    .sass-introduction {
      border: 0.05rem solid #521751;
      background: #fae5ff;
      padding: 2rem;
      text-align: center;
      box-shadow: 0.2rem 0.2rem 0.1rem #ccc;
      width: 90%;
      box-sizing: border-box;
    }

      变量表示list 

    $border-default:0.05rem solid $main-color;
    $font-default:Arial, sans-serif;
    body {
      font-family: $font-default;
      margin: 0;
    }
    .sass-introduction {
      border: $border-default;
      background: #fae5ff;
      padding: 2rem;
      text-align: center;
      box-shadow: 0.2rem 0.2rem 0.1rem #ccc;
      width: 90%;
      box-sizing: border-box;
    }

      变量表示map 

    $colors: (main : #521751,secondary : #fa923f);
    .documentation-links .documentation-link {
      text-decoration: none;
      color: map-get($colors,main);
      display: block;
      padding: 0.2rem;
    }

       编译后 

    .documentation-links .documentation-link {
      text-decoration: none;
      color: #521751;
      display: block;
      padding: 0.2rem;
    }

      变量的简单计算 

    $size-default: 1rem;
    .sass-introduction {
      border: $border-default;
      background:  lighten(map_get($colors,main),72%);
      padding: $size-default * 2;
      text-align: center;
      box-shadow: $size-tiny $size-tiny 0.1rem #ccc;
      width: 90%;
      box-sizing: border-box;
    }

      编译后 

    .sass-introduction {
      border: $border-default;
      background:  lighten(map_get($colors,main),72%);
      padding: 2rem;
      text-align: center;
      box-shadow: $size-tiny $size-tiny 0.1rem #ccc;
      width: 90%;
      box-sizing: border-box;
    }

      c、Sass的内置函数 

    $colors: (main : #521751,secondary : #fa923f);
    .sass-introduction {
      border: $border-default;
      background:  lighten(map_get($colors,main),72%);
      padding: 2rem;
      text-align: center;
      box-shadow: 0.2rem 0.2rem 0.1rem #ccc;
      width: 90%;
      box-sizing: border-box;
    }

      编译后: 

    .sass-introduction {
      border: 0.05rem solid #521751;
      background: #f7e1f6;
      padding: 2rem;
      text-align: center;
      box-shadow: 0.2rem 0.2rem 0.1rem #ccc;
      width: 90%;
      box-sizing: border-box;
    }

      sass中存在着大量的内置函数。

      d、partial和import

      sass中可以将共享的变量提取到一个单独的文件中,然后通过@import导入使用,编译后的css中不包含这些变量。

      提取变量到variables.scss文件中   

    $colors: (main : #521751,secondary : #fa923f);
    $border-default:0.05rem solid map-get($colors,main);
    $font-default:Arial, sans-serif;
    $size-default: 1rem;
    $size-tiny : 0.2rem;

      在main.scss中导入就可以使用这些变量。 

    @import "_variables.scss";

      我们可以在main.scss中导入其他的scss文件,文件编译后会被合并到同一个scss文件中,这样可以只需要发一次http请求。而css文件的导入不会合并文件。

      e、媒体查询 

    html {
      font-size: 94.75%;
      @media (min-width: 40rem) {
        font-size: 125%;
      }
    }

      编译后 

    html {
      font-size: 94.75%;
    }
    @media (min- 40rem) {
      html {
        font-size: 125%;
      }
    }

      f.inheritance 

    .sass-section{
      border: $border-default;
      background:  lighten(map_get($colors,main),72%);
      text-align: center;
      width: 90%;
      box-sizing: border-box;
      @media (min-width: 40rem) {
         30rem;
      }
    }
    .sass-introduction {
      @extend .sass-section;
      padding: $size-default * 2;
      box-shadow: $size-tiny $size-tiny 0.1rem #ccc;
    
    }
    
    .sass-details {
      @extend .sass-section;
      padding: $size-default;
      margin: 2rem 0;
    
    }

      编译后   

    .sass-section, .sass-details, .sass-introduction {
      border: 0.05rem solid #521751;
      background: #f7e1f6;
      text-align: center;
      width: 90%;
      box-sizing: border-box;
    }
    @media (min- 40rem) {
      .sass-section, .sass-details, .sass-introduction {
        width: 30rem;
      }
    }
    .sass-introduction {
      padding: 2rem;
      box-shadow: 0.2rem 0.2rem 0.1rem #ccc;
    }
    
    .sass-details {
      padding: 1rem;
      margin: 2rem 0;
    }

      g、mixin

      Sass中的混合相当自定义的函数。

    @mixin display-flex(){
      display: -webkit-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
    }
    @mixin media-min-width($width){
      @media (min-width: $width){
        @content;
      }
    }
    .container {
      @include display-flex();
      flex:{
        direction: column;
        wrap: nowrap;
      }
      align-items: center;
      padding: $size-default * 3 0;
      box-sizing: border-box;
      @include media-min-width(40rem){
        padding: 3rem 0;
      }
    }

      里面的@content使下面的 padding: 3rem 0;

    .container {
      display: -webkit-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      flex-direction: column;
      flex-wrap: nowrap;
      align-items: center;
      padding: 3rem 0;
      box-sizing: border-box;
    }
    @media (min- 40rem) {
      .container {
        padding: 3rem 0;
      }
    }

       

  • 相关阅读:
    ftp连接
    Excel表格内容导出到页面
    jquery 元素前或插入一元素
    sql 查出相同的记录 并把相同记录 显示在一起
    ie 使用window.open页面报错
    java生成word文档
    myeclipse导入项目
    java生成临时文件夹和删除临时文件夹
    正则学习笔记
    React和Vue的组件更新比较
  • 原文地址:https://www.cnblogs.com/yiluhuakai/p/10760132.html
Copyright © 2011-2022 走看看