zoukankan      html  css  js  c++  java
  • Sass 增强语法的样式表

    功能:
    • 完全兼容CSS3
    • 相对CSS,扩展了变量、嵌套和mixins
    • 对控制颜色和其他值的非常有用的方法
    • 高级功能,如库的直接控制
    • 良好的格式,自定义输出
    语法
    对于Sass,有两种语法。
    一种叫SCSS(Sassy CSS),它是CSS语法的扩展,也就是说,每个有效的CSS3样式对于一个有效的SCSS。并且SCSS理解更多的CSS技巧和厂商特性,里如果IE8的filter语法。
    第二种是旧些的语法,叫SASS。提供一种写CSS的便捷方式。
    前者的文件后缀名是.scss,后者是.sass。
    使用Convert命令可以相互转换:
    sass-convert style.sass style.scss
    反之亦然

    使用方法

    1. 安装
    $gem install sass

    2. 转换

    sass input.scss  output.css

    3. 监控

    $sass --watch input.scss:output.css
    目录:
    $sass --watch app/sass:public/stylesheets

    CSS扩展

    1. 嵌套规则

      Sass允许CSS嵌套到另外一个CSS中。例如:

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

    2.引用父选择器:&

      在嵌套使用中,有时候需要引用父元素:  

    a {
        font-weight: bold;
        text-decoration: none;
        &:hover { text-decoration: underline; }
        body.firefox & { font-weight: normal; }
    }

      编译后:  

    a {
        font-weight: bold;
        text-decoration: none; }
        a:hover {
            text-decoration: underline; 
        }
        body.firefox a {
            font-weight: normal; 
    }        

    3.嵌套属性

      在同一个命名空间下,CSS有时候会有多个属性,例如font-family,font-size和font-weight都在font命令空间下。使用嵌套,将减少输入。Sass提供冒号(:)来支持这个方法。例如:  

    .funky {
        font: {
            family: fantasy;
            size: 30e m;
            weight: bold;
        }
    }

      编译后:

    .funky {
        font-family: fantasy;
        font-size: 30em;
        font-weight: bold; 
    }

      也是可以带值的

    .funky {
        font: 20px/24px fantasy {
            weight: bold;
        }
    }

      编译后:

    .funky {
      font: 20px/24px fantasy;
        font-weight: bold;
    }

    注释

      方法:/*  */或者//

    @规则

    1. @import

      导入SCSS和Sass文件。所有导入的文件都会被合并成一个单独的CSS文件。另外,变量和mixins都可以在主文件中引用。

      在一次import中,可以导入多个文件,之间使用逗号隔开。例如:  

    @import "rounded-corners", "text-shadow"

      可以引入变量:

    $family: unquote("Droid+Sans");
    @import url("http://fonts.googleapis.com/css?family=#{$family}");

      编译后:  

    @import url("http://fonts.googleapis.com/css?family=Droid+Sans");
  • 相关阅读:
    ES分页
    在github上使用workflow构建docker镜像并推送阿里云
    xxl-job滥用netty导致的问题和解决方案
    使用netty实现socks5协议
    docker日志设置
    关于我
    友情链接
    分布式任务调度系统:xxl-job
    SpringBoot自定义配置以及IDEA配置提示
    frp穿透内网使用vsftpd服务
  • 原文地址:https://www.cnblogs.com/javawer/p/4213950.html
Copyright © 2011-2022 走看看