zoukankan      html  css  js  c++  java
  • SASS

     

    sass入门/sass教程:http://www.w3cplus.com/sassguide/

    阮一峰 sass用法指南:http://www.ruanyifeng.com/blog/2012/06/sass.html

    sass中文文档:http://sass.bootcss.com/docs/sass-reference/

    ============================================================================

    关于sass语法 参考:http://www.w3cplus.com/sassguide/syntax.html

    简述sass语法:

    1、sass中可以定义变量,方便统一修改和维护。

    //sass style //-----------------------------------
    $fontStack: Helvetica, sans-serif;
    $primaryColor: #333;
    body {
      font-family: $fontStack;
      color: $primaryColor;
    }
    //css style
    //-----------------------------------
    body {
      font-family: Helvetica, sans-serif;
      color: #333;
    }

    2、sass可以进行选择器的嵌套,表示层级关系,看起来很优雅整齐。

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

    3、sass中如导入其他sass文件,最后编译为一个css文件,优于纯css的@import

    //sass style
    //-----------------------------------
    // _reset.scss
    
    html,
    body,
    ul,
    ol {
       margin: 0;
      padding: 0;
    }

    //sass style //----------------------------------- // base.scss @import 'reset'; body { font-size: 100% Helvetica, sans-serif; background-color: #efefef; }

    //css style //----------------------------------- html, body, ul, ol { margin: 0; padding: 0; } body { background-color: #efefef; font-size: 100% Helvetica, sans-serif; }

    4、sass中可用mixin定义一些代码片段,且可传参数,方便日后根据需求调用。从此处理css3的前缀兼容轻松便捷。

    //sass style
    //-----------------------------------
    @mixin box-sizing ($sizing) {
        -webkit-box-sizing:$sizing;     
           -moz-box-sizing:$sizing;
                box-sizing:$sizing;
    }
    .box-border{
        border:1px solid #ccc;
        @include box-sizing(border-box);
    }
    
    //css style
    //-----------------------------------
    .box-border {
      border: 1px solid #ccc;
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
    }

    5、扩展/继承 sass可通过@extend来实现代码组合声明,使代码更加优越简洁。

    //sass style
    //-----------------------------------
    .message {
      border: 1px solid #ccc;
      padding: 10px;
      color: #333;
    }
    .success {
      @extend .message;
      border-color: green;
    }
    .error {
      @extend .message;
      border-color: red;
    }
    .warning {
      @extend .message;
      border-color: yellow;
    }
    
    //css style
    //-----------------------------------
    .message, .success, .error, .warning {
      border: 1px solid #cccccc;
      padding: 10px;
      color: #333;
    }
    .success {
      border-color: green;
    }
    .error {
      border-color: red;
    }
    .warning {
      border-color: yellow;
    }

    6、sass可进行简单的加减乘除运算等

    //sass style
    //-----------------------------------
    .container { width: 100%; }
    article[role="main"] {
      float: left;
      width: 600px / 960px * 100%;
    }
    aside[role="complimentary"] {
      float: right;
      width: 300px / 960px * 100%;
    }
    //css style
    //-----------------------------------
    .container {
      width: 100%;
    }
    article[role="main"] {
      float: left;
      width: 62.5%;
    }
    aside[role="complimentary"] {
      float: right;
      width: 31.25%;
    }

    7、颜色sass中集成了大量的颜色函数,让变换颜色更加简单。

    //sass style
    //-----------------------------------
    $linkColor: #08c;
    a {
        text-decoration:none;
        color:$linkColor;
        &:hover{
          color:darken($linkColor,10%);
        }
    }
    //css style //----------------------------------- a
    { text-decoration: none; color: #0088cc; } a:hover { color: #006699; }

     ===================================================================================

    示例scss文件编写语法:

    注: 注释只能用英文、参考文档里边有的函数还不能实现(安装的sass版本原因)!

    $base_color:magenta;
    $base_font:50px;
    $bg:#ccc;
    $color:#fff;
    $fontSize: 12px;
    *{
        padding: 0;
        margin: 0;
    }
    body{
        font-size:$fontSize;
    }
    #mian{
        font-weight:900;
        font-size:28px;
        width:100px;
        height:500px;
    }
    section{
        width: 100%;
        border: 1px solid #ccc;
        .box1{
            background: $base_color;
            h2{
                color: $color;
            }
            p{
                span{
                    font-size: $base_font;
                }
            }
        }
        .box2{
            background: aqua;
            img{
                width: 400px;
                height: 500px;
                border: 1px solid #CCCCCC;
                display: block;
            }
        }
    }
    
    @mixin box-sizing($s){
        -webkit-box-sizing: $s;
        -moz-box-sizing: $s;
        box-sizing: $s;
    }
    .box3{
        border: 1px solid #000000;
        background: skyblue;
        width: 500px;
        height: 500px;
        color: $color;
        @include box-sizing(border-box);
    }
    .spack{
        @extend .box3;
    }
    
    //insert
    //-------------------------------
    .fakeshadow {
      border: {
        style: solid;
        left: {
           4px;
          color: #888;
        }
        right: {
          width: 2px;
          color: #ccc;
        }
      }
    }
    
    //-------------------------------
    @mixin center-block {
        margin-left:auto;
        margin-right:auto;
    }
    .demo{
        @include center-block;
    }
    //--------
    @mixin opacity($opacity:50) {
      opacity: $opacity / 100;
      filter: alpha(opacity=$opacity);
    }
    //-------
    @mixin horizontal-line($border:1px dashed #ccc, $padding:10px){
        border-bottom:$border;
        padding-top:$padding;
        padding-bottom:$padding;  
    }
    .imgtext-h li{
        @include horizontal-line(1px solid #ccc);
    }
    .imgtext-h--product li{
        @include horizontal-line($padding:15px);
    }
    
    //==============================
    h1{
      border: 4px solid #ff9aa9;
    }
    .speaker{
      @extend h1;
      border-width: 2px;
    }
    
    //-------------------------------
    $lte7: true;
    $type: monster;
    .ib{
        display:inline-block;
        @if $lte7 {
            *display:inline;
            *zoom:1;
        }
    }
    p {
      @if $type == ocean {
        color: blue;
      } @else if $type == matador {
        color: red;
      } @else if $type == monster {
        color: green;
      } @else {
        color: black;
      }
    }
    
    //---------------------------
    @for $i from 1 through 3 {
      .item-#{$i} { width: 2em * $i; }
    }
    //------------------------------
    $animal-list: puma, sea-slug, egret, salamander;
    @each $animal in $animal-list {
      .#{$animal}-icon {
        background-image: url('/images/#{$animal}.png');
      }
    }
  • 相关阅读:
    android 如何添加第3方lib库到kernel中
    如何搭建modem编译环境
    /dev、/sys/dev 和/sys/devices 和udev的关系
    Makefile的obj-y 和 obj-m
    MTK Android添加驱动模块
    使用 /sys 文件系统访问 Linux 内核
    JNI设置C++与java的结合(2)
    android 常用方法集合
    操作系统(科普章节)
    前端面试之前要准备的那些事
  • 原文地址:https://www.cnblogs.com/xiangru0921/p/6560164.html
Copyright © 2011-2022 走看看