• Sass学习


    1.1下载地址:

      http://rubyinstaller.org/downloads

    2.1 安装

    SASS是Ruby语言写的,但是两者的语法没有关系。不懂Ruby,照样使用。只是必须先安装Ruby,然后再安装SASS。

    假定你已经安装好了Ruby,接着在命令行输入下面的命令:

      gem install sass

    然后,就可以使用了。

    2.2 使用

    SASS文件就是普通的文本文件,里面可以直接使用CSS语法。文件后缀名是.scss,意思为Sassy CSS。

    下面的命令,可以在屏幕上显示.scss文件转化的css代码。(假设文件名为test。)

      sass test.scss

    如果要将显示结果保存成文件,后面再跟一个.css文件名。

      sass test.scss test.css

    SASS提供四个编译风格的选项:

      * nested:嵌套缩进的css代码,它是默认值。

      * expanded:没有缩进的、扩展的css代码。

      * compact:简洁格式的css代码。

      * compressed:压缩后的css代码。

    生产环境当中,一般使用最后一个选项。

      sass --style compressed test.sass test.css

    你也可以让SASS监听某个文件或目录,一旦源文件有变动,就自动生成编译后的版本。

      // watch a file

      sass --watch input.scss:output.css

      // watch a directory

      sass --watch app/sass:public/stylesheets

    SASS的官方网站,提供了一个在线转换器。你可以在那里,试运行下面的各种例子。

    三、基本用法

     变量

    SASS允许使用变量,所有变量以$开头。

    Sass源代码:

    $blue:#1875e7;
    div{
      color:$blue;
      }
      
      $side:left;
      /*asassdf*/
      .rounded{
        .round{
          border-#{$side}-radius:5px;
        }
        
      }
      
      /*计算能力*/
      $var:2;
      body{
        margin: (14px/2);
        top:50px + 100px;
        right:$var * 20%;
      }
      
      /*嵌套*/
      div h1{
        color:red;
      }
      
      /*也可以写成这样*/
      /*属性的嵌套必须要在属性后成加上冒号*/
      p{
        border:{
          color:red;
          
        }
      }
      /*关于注释:
        又斜杠是在css文件中是不显示的;
        C++方式注释的方法会留在CSS文件中;
      */
      
      /*继承*/
      .class1{
        margin:0 auto;
        border:1px solid #000;
      }
      .class2{
        @extend .class1;
        font-size:120%;
      }
    
    
    /*Mixin 宏的使用*/
    @mixin left{  //定义mixin宏
      float:left;
      margin-left:10px;
    }
    
    div{
      @include left;  //@include 用于引用minxin宏;
      
    }
    
    /*带参数的minxin宏*/
    @mixin left($value:20px){
      float:left;
      margin-right:$value;
    }
      
    //使用带参数的mixin宏;
    div{
      @include left(40px);
      
    }
      
      
    /*Sass高级语法*/
    //@if 语句的使用;
    p{
      @if 1 + 1 == 2{
        border:1px solid #000;
      }
      
      @if 3 < 2{
        border:2px solid #fff;
        
      }
    }
    //@else 语句的使用;
    /*
    @function linghtness($value){
      @return $value;
    }
    $color:20%;
    @if linghtness($color) > 30%{
      background-color:#000;
    }@else{
      background-color:#fff;
    }*/
    
    //for 语句的使用;
     @for $i from 1 to 5  {
       .itme-#{$i} {width:100px; height:100px; }
     }
     
     //while语句
     
     $i:6;
     
     @while $i > 0 {
       .itme-#{$i} {width: 2em * $i;}
       $i:$i - 2;
       
     }
     
     //each命令
     @each $member in a, b, c, d, f{
     
     .#{$member}{
        background-image:url("../images/#{$member}.jpg");
     }
     }

    对应生成的CSS文件:

    @charset "UTF-8";
    div {
      color: #1875e7;
    }
    
    /*asassdf*/
    .rounded .round {
      border-left-radius: 5px;
    }
    
    /*计算能力*/
    body {
      margin: 7px;
      top: 150px;
      right: 40%;
    }
    
    /*嵌套*/
    div h1 {
      color: red;
    }
    
    /*也可以写成这样*/
    /*属性的嵌套必须要在属性后成加上冒号*/
    p {
      border-color: red;
    }
    
    /*关于注释:
      又斜杠是在css文件中是不显示的;
      C++方式注释的方法会留在CSS文件中;
    */
    /*继承*/
    .class1, .class2 {
      margin: 0 auto;
      border: 1px solid #000;
    }
    
    .class2 {
      font-size: 120%;
    }
    
    /*Mixin 宏的使用*/
    div {
      float: left;
      margin-left: 10px;
    }
    
    /*带参数的minxin宏*/
    div {
      float: left;
      margin-right: 40px;
    }
    
    /*Sass高级语法*/
    p {
      border: 1px solid #000;
    }
    
    /*
    @function linghtness($value){
      @return $value;
    }
    $color:20%;
    @if linghtness($color) > 30%{
      background-color:#000;
    }@else{
      background-color:#fff;
    }*/
    .itme-1 {
      width: 100px;
      height: 100px;
    }
    
    .itme-2 {
      width: 100px;
      height: 100px;
    }
    
    .itme-3 {
      width: 100px;
      height: 100px;
    }
    
    .itme-4 {
      width: 100px;
      height: 100px;
    }
    
    .itme-6 {
      width: 12em;
    }
    
    .itme-4 {
      width: 8em;
    }
    
    .itme-2 {
      width: 4em;
    }
    
    .a {
      background-image: url("../images/a.jpg");
    }
    
    .b {
      background-image: url("../images/b.jpg");
    }
    
    .c {
      background-image: url("../images/c.jpg");
    }
    
    .d {
      background-image: url("../images/d.jpg");
    }
    
    .f {
      background-image: url("../images/f.jpg");
    }
  • 相关阅读:
    angular11源码探索七[服务二]
    angular11源码探索六[服务基础一]
    有趣的特效,嘤嘤嘤
    angular11学习(十八)
    matplotlib 去掉小方框
    xlrd.biffh.XLRDError 问题报错
    页面点击出现蓝色背景色
    移动端不显示滚动条
    Swiper垂直方向滑动,高度获取不正确的解决方法
    二维树状数组
  • 原文地址:https://www.cnblogs.com/flay/p/3867476.html
Copyright © 2020-2023  润新知