zoukankan      html  css  js  c++  java
  • Sass

    安装

    npm install -g sass

    1、Sass 变量使用 $ 符号:

    $variablename: value;

    $Width: 680px;
    
    body {
       $Width;
    }
    

    2、Sass 嵌套规则与属性

    嵌套规则

    如下我们嵌套一个导航栏的样式:

    Sass 代码:

    nav {
      ul {
        margin: 0;
        padding: 0;
        list-style: none;
      }
      li {
        display: inline-block;
      }
      a {
        display: block;
        padding: 6px 12px;
        text-decoration: none;
      }
    }
    

    将以上代码转换为 CSS 代码,如下所示:

    Css 代码:

    nav ul {
      margin: 0;
      padding: 0;
      list-style: none;
    }
    nav li {
      display: inline-block;
    }
    nav a {
      display: block;
      padding: 6px 12px;
      text-decoration: none;
    }
    
    嵌套属性

    很多 CSS 属性都有同样的前缀,例如:font-family, font-sizefont-weighttext-align, text-transformtext-overflow

    在 Sass 中,我们可以使用嵌套属性来编写它们:

    Sass 代码:
    font: {
      family: Helvetica, sans-serif;
      size: 18px;
      weight: bold;
    }
    
    text: {
      align: center;
      transform: lowercase;
      overflow: hidden;
    }
    

    将以上代码转换为 CSS 代码,如下所示:

    Css 代码:

    font-family: Helvetica, sans-serif;
    font-size: 18px;
    font-weight: bold;
    
    text-align: center;
    text-transform: lowercase;
    text-overflow: hidden;
    

    3、 @import

    Sass 可以让我们减少可以帮助我们减少 CSS 重复的代码,节省开发时间。

    Sass @import 指令语法如下:
    @import filename;

    4、@mixin 与 @include

    Sass 代码:

    @mixin important-text {
      color: red;
      font-size: 25px;
      font-weight: bold;
      border: 1px solid blue;
    }
    .danger {
      @include important-text;
      background-color: green;
    }
    

    将以上代码转换为 CSS 代码,如下所示:

    Css 代码:

    .danger {
      color: red;
      font-size: 25px;
      font-weight: bold;
      border: 1px solid blue;
      background-color: green;
    }
    

    混入中也可以包含混入,如下所示:实例

    @mixin special-text {
      @include important-text;
      @include link;
      @include special-border;
    }
    

    混入可以接收参数。
    实例

    /* 混入接收两个参数 */
    @mixin bordered($color, $width) {
      border: $width solid $color;
    }
    .my {
      @include bordered(blue, 1px);  // 调用混入,并传递两个参数
    }
    

    将以上代码转换为 CSS 代码,如下所示:

    Css 代码:

      border: 1px solid blue;
    }
    .myNotes {
      border: 2px solid red;
    }
    

    混入的参数也可以定义默认值,语法格式如下:

    实例

    @mixin sexy-border($color, $ 1in) {
      border: {
        color: $color;
         $width;
        style: dashed;
      }
    }
    p { @include sexy-border(blue); }
    h1 { @include sexy-border(blue, 2in); }
    

    可变参数

    有时,不能确定一个混入(mixin)或者一个函数(function)使用多少个参数,这时我们就可以使用 ... 来设置可变参数。

    例如,用于创建盒子阴影(box-shadow)的一个混入(mixin)可以采取任何数量的 box-shadow 作为参数。

    实例

    @mixin box-shadow($shadows...) {
          -moz-box-shadow: $shadows;
          -webkit-box-shadow: $shadows;
          box-shadow: $shadows;
    }
    .shadows {
      @include box-shadow(0px 4px 5px #666, 2px 6px 10px #999);
    }
    

    浏览器前缀使用混入
    浏览器前缀使用混入也是非常方便的,如下实例:

    实例

    @mixin transform($property) {
      -webkit-transform: $property;
      -ms-transform: $property;
      transform: $property;
    }
    
    .myBox {
      @include transform(rotate(20deg));
    }
    

    将以上代码转换为 CSS 代码,如下所示:
    Css 代码:

    .myBox {
      -webkit-transform: rotate(20deg);
      -ms-transform: rotate(20deg);
      transform: rotate(20deg);
    }
    

    5、@extend 与 继承

    @extend 指令告诉 Sass 一个选择器的样式从另一选择器继承。

    如果一个样式与另外一个样式几乎相同,只有少量的区别,则使用 @extend 就显得很有用。

    以下 Sass 实例中,我们创建了一个基本的按钮样式 .button-basic,接着我们定义了两个按钮样式 .button-report 与 .button-submit,它们都继承了 .button-basic ,它们主要区别在于背景颜色与字体颜色,其他的样式都是一样的。

    Sass 代码:

    .button-basic  {
      border: none;
      padding: 15px 30px;
      text-align: center;
      font-size: 16px;
      cursor: pointer;
    }
    .button-report  {
      @extend .button-basic;
      background-color: red;
    }
    .button-submit  {
      @extend .button-basic;
      background-color: green;
      color: white;
    }
    

    将以上代码转换为 CSS 代码,如下所示:

    Css 代码:

    .button-basic, .button-report, .button-submit {
      border: none;
      padding: 15px 30px;
      text-align: center;
      font-size: 16px;
      cursor: pointer;
    }
    
    .button-report  {
      background-color: red;
    }
    
    .button-submit  {
      background-color: green;
      color: white;
    }
    

    使用 @extend 后,我们在 HTML 按钮标签中就不需要指定多个类 class="button-basic button-report" ,只需要设置 class="button-report" 类就好了。

    @extend 很好的体现了代码的复用。

  • 相关阅读:
    JDBC中的PreparedStatement相比Statement的好处
    说出一些数据库优化方面的经验?
    数据库三范式是什么?
    用jdom解析xml文件时如何解决中文问题?如何解析?
    我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
    MVC的各个部分都有那些技术来实现?如何实现?
    JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
    黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!  
    串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?
    说几个常见的编译时异常类?
  • 原文地址:https://www.cnblogs.com/lyly96720/p/11668001.html
Copyright © 2011-2022 走看看