zoukankan      html  css  js  c++  java
  • sass基础

    一、sass的安装和启用

      1. 安装ruby和sass  sass -v  可以显示版本号即可;

      2. 命令行cd到指定的sass文件所在的文件夹目录下,然后sass --watch main.scss;

        sass生成的css会有四种不同的样式

        --style nested

        --style expanded

        --style compact

        --style compressed

        使用时;在命令行输入sass --watch main.scss --style compressed这种格式即可。尝试一下十分容易理解。

    二、变量

      1. 普通变量和默认变量的声明和调用 

    //普通变量
    $fontSize: 12px; //声明
    body{
        font-size:$fontSize; //调用
    }
    //默认变量:默认变量的价值在进行组件化开发的时候会非常有用。
    $baseLineHeight:1.5 !default;
    body{
        line-height: $baseLineHeight; 
    }

      2. 全局变量和局部变量

    $color: orange !default;//定义全局变量(在选择器、函数、混合宏...的外面定义的变量为全局变量)
    
    .block {
      color: $color;//调用全局变量
    }
    em {
      $color: red;//定义局部变量
      a {
        color: $color;//调用局部变量
      }
    }
    span {
      color: $color;//调用全局变量
    }

    三、嵌套

       1. 选择器嵌套

    //HTML结构:
    <header>
    <nav>
        <a href=“##”>Home</a>
        <a href=“##”>About</a>
        <a href=“##”>Blog</a>
    </nav>
    <header>
    //Sass: 
    nav {
      a {
        color: red;
        //&:上一级选择器
        header & {
          color:green;
        }
      }  
    }

      2. 属性嵌套

    //属性嵌套
    .box {
      border: {
       top: 1px solid red;
       bottom: 1px solid green;
      }
    }

      3.伪类嵌套

    .clearfix{
        &:before,
        &:after {
            content:"";
            display: table;
          }
        &:after {
            clear:both;
            overflow: hidden;
          }
    }

     四、混合

      1.  无参混合宏

    //不带参数的混合宏
    @mixin border-radius{
        -webkit-border-radius: 5px;
        border-radius: 5px;
    }
    //调用:
    .box {
      @include border-radius;
    }

      2.无默认值带参混合宏

    //无默认值的带参混合宏
    @mixin border-radius($radius){
        -webkit-border-radius: $radius;
        border-radius: $radius;
    }
    //调用:
    .box {
      @include border-radius(3px);
    }

      3.有默认值带参混合宏

    //带默认值
    @mixin border-radius($radius:3px){
      -webkit-border-radius: $radius;
      border-radius: $radius;
    }
    //调用
    .box {
      @include border-radius(50%);//或者@include border-radius;
    }

       4. 多个参数带参混合宏

    //带多个参数(例如经典居中)
    @mixin center($width,$height){
       $width;
      height: $height;
      position: absolute;
      top: 50%;
      left: 50%;
      margin-top: -($height) / 2;
      margin-left: -($width) / 2;
    }
    //调用
    .box-center {
      @include center(500px,300px);
    }
    //参数过多时的复杂混合宏:
    @mixin box-shadow($shadow...) {
      @if length($shadow) >= 1 {
        @include prefixer(box-shadow, $shadow);
      } @else{
        $shadow:0 0 4px rgba(0,0,0,.3);
        @include prefixer(box-shadow, $shadow);
      }
    }
    //当 $shadow 的参数数量值大于或等于“ 1 ”时,表示有多个阴影值,反之调用默认的参数值“ 0 0 4px rgba(0,0,0,.3) ”。
    
    //调用声明的混合宏:
    .box {
      @include box-shadow(0 0 1px rgba(#000,.5),0 0 2px rgba(#000,.2));
    }
  • 相关阅读:
    Jmeter响应断言的处理。
    Jmeter超时处理。
    HTTP协议简介以及特点。
    自动化测试面试技巧。
    父类构造方法有无参数对子类的影响。
    自动化分层思想分析1.
    设计模式
    遍历课程列表代码。
    如何遍历当前页课程定位分析,以及代码编写。
    “笨方法”学习Python笔记(1)-Windows下的准备
  • 原文地址:https://www.cnblogs.com/sowhite/p/6362365.html
Copyright © 2011-2022 走看看