嵌套:

  1.选择器嵌套;

  2.属性嵌套;

  .box {
        border-top: 1px solid red;
        border-bottom: 1px solid green;
  }
  .box {
      border: {
             top: 1px solid red;
           bottom: 1px solid green;
        }
    }

  3.伪类嵌套;

  .box:before {
          content: "伪元素嵌套";
  }
 
  .box{
      &:before {
          content:"伪元素嵌套";
      }
  }

  4.跳出嵌套;@at-root

  跳出嵌套
  body{
       @at-root .container{
            width: 20px;
        }
  }


混合宏:

 在 Sass 中通过 @mixin 关键词声明了一个混合宏,那么在实际调用中,其匹配了一个关键词“@include”来调用声明好的混合宏

@mixin border-rad($rad1...){
-webkit-border-radius:$rad1;
-moz-border-radius:$rad1;
-o-border-radius:$rad1;
-ms-border-radius:$rad1;
border-radius:$rad1;
}
.box4{
@include border-rad(36px 30px 10px red,2px 5px 6px red);
}

继承:在 Sass 中也具有继承一说,继承类中的样式代码块。在 Sass 中是通过关键词 “@extend”来继承已存在的类样式块,从而实现代码的继承。

.btn {
border: 1px solid #ccc;
padding: 6px 10px;
font-size: 14px;
} .btn-primary {
background-color: #f36;
color: #fff;
@extend .btn;
} .btn-second {
background-color: orange;
color: #fff;
@extend .btn;
} 效果:
.btn, .btn-primary, .btn-second {
border: 1px solid #ccc;
padding: 6px 10px;
font-size: 14px;
}

占位符:Sass 中的占位符 %placeholder 功能是一个很强大,很实用的一个功能。他可以取代以前 CSS 中的基类造成的代码冗余的情形。因为 %placeholder 声明的代码,如果不被 @extend 调用的话,不会产生任何代码。

%mt5 {
margin-top: 5px;
}
%pt5{
padding-top: 5px;
} .btn {
@extend %mt5;
@extend %pt5;
} .block {
@extend %mt5; span {
@extend %pt5;
}
} 效果:
.btn, .block {
margin-top: 5px;
} .btn, .block span {
padding-top: 5px;
}

插值:

$properties: (margin, padding);
@mixin set-value($side, $value) {
@each $prop in $properties {
#{$prop}-#{$side}: $value;
}
}
.login-box {
@include set-value(top, 14px);
} //它可以让变量和属性工作的很完美,上面的代码编译成 CSS: .login-box {
margin-top: 14px;
padding-top: 14px;
} @mixin asd($wid,$hei,$classname,$bg,$name){
    #{$name}:$wid;
    height:$hei;
    .#{$classname}{
        #{$bg}:red;
    } }

运算:

.box {
width: 20px + 30px;
} 效果:
.box {
width: 50px;
}
.box {
width: 20px - 30px;
} 效果:
.box {
width: -10px;
}
.box {
width: 20px * 30px;
} 效果:
.box {
width: 600px;
}

注意运算符之间要用空格隔开;

函数:

  颜色函数:

body{
color: rgb(255,0,200);
} body{
$color: rgb(255,0,200);
color: $color;
background-color: rgba($color,0.5);
} p{
color: darken($color, 2);
background-color: lighten($color,0.5);
}

str-length(),str-index();

  z-index:str-length("aaaaa");得到的结果是,Z-index:5;

  z-index:str-index("abcdfedd",c);得到的结果是,Z-index:3;

自定义函数:

  @function double($width){

    @retrun $width * 2;

}

控制命令:

//@if
@mixin blockOrHidden($boolean:true) {
@if $boolean {
@debug "$boolean is #{$boolean}";
display: block;
}
@else {
@debug "$boolean is #{$boolean}";
display: none;
}
} .block {
@include blockOrHidden;
} .hidden{
@include blockOrHidden(false);
} 编译出来的CSS: .block {
display: block;
} .hidden {
display: none;
} @debug报错时调试
//@for
@for $i from <start> through <end>
@for $i from <start> to <end>
$i 表示变量
start 表示起始值
end 表示结束值 关键字 through 表示包括 end 这个数,而 to 则不包括 end 这个数。 @for $i from 1 through 3 {
.item-#{$i} { width: 2em * $i; }
}
编译出来的 CSS: .item-1 {
width: 2em;
} .item-2 {
width: 4em;
} .item-3 {
width: 6em;
} //@while
$types: 4;
$type-width: 20px; @while $types > 0 {
.while-#{$types} {
width: $type-width + $types;
}
$types: $types - 1;
} 编译出来的 CSS .while-4 {
width: 24px;
} .while-3 {
width: 23px;
} .while-2 {
width: 22px;
} .while-1 {
width: 21px;
}
//@each
$k: 1;
@each $c in blue, yellow, gray{
.div#{$k}{
color: $c;
}
$k: $k + 1;
} @each $key,$value in (a: blue, b: yellow, c: gray){
.class#{$key}{
color: $value;
}
}

sass基础用法的更多相关文章

  1. sass的用法小结(四)进阶篇

    Sass 的数据类型 Sass 既然有了类似编程语言的功能,自然也就有了简单的数据类型.这里简单的介绍一些 Sass 中的数据类型,因为在后面的讨论中要用到有关的内容. Sass 中主要有六种数据类型 ...

  2. PropertyGrid控件由浅入深(二):基础用法

    目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...

  3. logstash安装与基础用法

    若是搭建elk,建议先安装好elasticsearch 来自官网,版本为2.3 wget -c https://download.elastic.co/logstash/logstash/packag ...

  4. elasticsearch安装与基础用法

    来自官网,版本为2.3 注意elasticsearch依赖jdk,2.3依赖jdk7 下载rpm包并安装 wget -c https://download.elastic.co/elasticsear ...

  5. BigDecimal最基础用法

    BigDecimal最基础用法 用字符串生成的BigDecimal是不会丢精度的. 简单除法. public class DemoBigDecimal { public static void mai ...

  6. [转]前端利器:SASS基础与Compass入门

    [转]前端利器:SASS基础与Compass入门 SASS是Syntactically Awesome Stylesheete Sass的缩写,它是css的一个开发工具,提供了很多便利和简单的语法,让 ...

  7. Vue组件基础用法

    前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...

  8. Smarty基础用法

    一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...

  9. 前端自动化测试神器-Katalon的基础用法

    前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作 ...

随机推荐

  1. 【Android Studio】android Internal HTTP server disabled 解决

    报错:Cannot start internal HTTP server. Git integration, JavaScript debugger and LiveEdit may operate ...

  2. jQuery stop()用法

    jQuery stop()的用法: stop(true)等价于stop(true,false): 停止被选元素的所有加入队列的动画. stop(true,true):停止被选元素的所有加入队列的动画, ...

  3. angularjs $scope.$apply 方法详解

    myApp.controller('firstController',function($scope,$interval){ $scope.date = new Date(); setInterval ...

  4. tail命令详解

    搜索 纠正错误  添加实例 tail 在屏幕上显示指定文件的末尾若干行 补充说明 tail命令 用于输入文件中的尾部内容.tail命令默认在屏幕上显示指定文件的末尾10行.如果给定的文件不止一个,则在 ...

  5. AtomicBoolean介绍与使用

       java.util.concurrent.atomic.AtomicBoolean 继承自Object. 介绍: 在这个Boolean值的变化的时候不允许在之间插入,保持操作的原子性 方法和举例 ...

  6. 关于datepicker只显示年、月、日的设置

    关键时侯,还得看官方文档.花了半个多小时,找了网上一大堆答复,然后一一验证,90%没有能解决问题. 先给出官方文档的URL: http://bootstrap-datepicker.readthedo ...

  7. 更改WAS Profiles的概要文件的server1的SDK版本

    WebSphere只能使用IBM JDK 哦,不能使用sun的JDK哦.不过如果只是改jdk的版本的话可以参考如下步骤:(以集群为例,假设具有管理节点Dmgr01,应用概要AppSrv01) 1. 确 ...

  8. Winform Textbox控件字体垂直居中

    项目中遇到要求Textbox内的字体垂直居中的问题,在网上找一直没有理想的解决方案.后来发现可以通过设置控件的字体来达到预期的效果. 默认的Textbox的Font属性为 “宋体, 9pt”,效果如下 ...

  9. node09-cookie

    目录:node01-创建服务器 node02-util node03-events node04-buffer node05-fs node06-path node07-http node08-exp ...

  10. 多功能前台交互效果插件superSlide

    平时我们常用的"焦点图/幻灯片""Tab标签切换""图片滚动""无缝滚动"等效果要加载n个插件,又害怕代码冲突又怕不兼容 ...