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

       

  • 相关阅读:
    js 文件的操作
    js重点基础知识 以及小案例_最简单的轮播图 简单的动态表格( encodeURIComponent()编码比 encodeURI()编码)
    2阶——数据库连接池 c3p0 , druid, dbcp (其实所有的连接池都实现了dataSource接口,就可以调用getconnection方法)
    2阶——JDBC,JDBCTemplate(操作数据库)
    vue + django 批量删除
    简单的模糊搜索 Vue + django
    vue 父子组件传参简单的分页
    vue 多对多反序列化上传图片
    模型里的 抽象类 表继承
    django 多对多反序列添加
  • 原文地址:https://www.cnblogs.com/yiluhuakai/p/10760132.html
Copyright © 2011-2022 走看看