zoukankan      html  css  js  c++  java
  • css预处理器-sass

    1.什么是sass

      拥有变量,处理逻辑的css预处理器。简单的说就是将css以js的思维方式来写。sass文件的后缀名有两种:一个是sass,一个是scss。不同的后缀名,对应的语法也有所不同。

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

      a {
        &:hover { color: #ffb3ff; }
      }

    3.sass拥有变量

      使用$符作为变量的前缀,格式:$变量名=值,例如:$defaultColor = '#ccc'

      body{ color:$defaultColor } 等价于css:    body{ color:"#ccc" }

      作用:便于规范css样式处理

    4. sass作用域

      $defaultColor:"#ccc";

      h1:{

        $defaultColor:red,

        color:$defaultColor;

      }

      p{

        color:$defaultColor; // #ccc

      }

      总结:sass变量的作用域只在当前层级有效,也就是说只在大括号的范围内有效

    5.改变sass作用域

      $defaultColor:"#ccc";

      h1:{

        $defaultColor:red !global,//全局作用域

        color:$defaultColor;

      }

      p{

        color:$defaultColor; // red

      }  

      总结:可以通过使用 !global 来将局部作用域设置为全局作用域

    6. @mixin与@include

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

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

      $defaultColor:"#fff";

      @mixin default-style{

        color:$defaultColor,

        font-size:14px;

      }

      div{

        @include default-style;//引入混入

        margin:0;

        padding:0;

      }

      p{

        @include default-style;//引入混入

        border:1px solid #efefef

      }

      总结:在样式表中,重复用到的样式可以定义在一个混入中,然后通过@include来在不同的选择器中引入

    7.@extend继承

      如果一个样式与另一个样式只有少量的区别,则可以使用@extend就会很有用

      .default-box{

        color:$defaultColor;

        font-size:14px;

        100%;

        border:1px solid #fff;

      }

      .main{

        @extend .default-box;//继承default-box

        height:30px;

      }

      .section{

        @extend .default-box;//继承default-box

        height:100px;

      }

    8. 条件语句

      8.1  @if 可以用来判断:

      p {
        @if 1 + 1 == 2 { border: 1px solid; }
        @if 5 < 3 { border: 2px dotted; }
      }

      配套的还有 @else 命令

     @if lightness($color) > 30% {
        
      } @else {
        background-color: #fff;
      }

     8.2.  循环语句

      支持 for 循环:

     @for $i from 1 to 10 {
        .border-#{$i} {
          border: #{$i}px solid blue;
        }
      }

    也支持 while 循环:

    $i: 6;
    
      @while $i > 0 {
        .item-#{$i} {  2em * $i; }
        $i: $i - 2;
      }

    each命令,作用与for类似:

    @each $member in a, b, c, d {
        .#{$member} {
          background-image: url("/image/#{$member}.jpg");
        }
      }

    9. 自定义函数

    允许用户编写自己的函数。 

     @function double($n) {
        @return $n * 2;
      }
    
      .sidebar {
         double(5px);
      }
  • 相关阅读:
    MySQL 对于千万级的大表要怎么优化?
    mysql数据库优化总结
    php 正则表达式怎么匹配标签里面的style?
    php一行代码获取本周一,本周日,上周一,上周日,本月一日,本月最后一日,上月一日,上月最后一日日期
    PHP过滤常用标签的正则表达式
    php冒泡排序
    PHP中__FUNCTION__与__METHOD__的区别
    关于PHP程序员技术职业生涯规划
    初识DSP
    MATLAB图像处理基础
  • 原文地址:https://www.cnblogs.com/pylf/p/13498018.html
Copyright © 2011-2022 走看看