sass 第三天

一 、巩固继承 、 混合器 、 占位符的用法

  

1 、混合宏(混合器)的用法

  用 @mixin 声明,@include 调用

    @mixin mt($var){
          margin-top: $var;
    }

    .box{
         @include mt(10px)
    }

    编译后:

    .box {
        margin-top: 10px;

    }

2 、 继承的用法

  用  .class 类名定义,@extend 调用

      .bor{
         border: 1px solid black;
    }
    .box{
         width: 100px;
         height: 100px;
         @extend .bor
    }

    编译后:

    .bor, .box {

          border: 1px solid black;

    }

    .box {
        width: 100px;
        height: 100px;

    }

  因为 .bor 已经定义过 border 的值,所以在下面调用的时候,是将定义的元素和调用的元素合并,而不会再显示一遍,这也就是为什么继承会使得代码更为优化的原因。

3 、占位符的用法

  用 %placeholder 占位符定义,@extend 调用

    %mt{
        margin: 15px;
    }
    .box{
        @extend %mt;
    }

    编译后:

    .box {
       margin: 15px;

     }

二 、Sass Script

  2-1 、变量 $

    跟之前的 css 变量定义及调用一样,也分为全局和局部变量,但在 Sass Script 中,局部变量可以通过 !global  转化为全局变量 。

  2-2 、数据类型

    数字     1,2,12px

    字符串,有引号字符串和无引号字符串     "header","bar", baz

    颜色     red,#FF0000,rgba(255,0,0,0.5)

    布尔值     true,false

    空值     null

    数组,用空格或逗号做分隔符      1 2 3 4 5 6 p a d   ,   1,2,3,4,5,6,p,a,d

    maps,相当于 JavaScript  的 Object     (key1:valuel, key2:value2)

  SassScript  也支持其他 css 属性值,比如:Unicode 字符集,或 !important 声明 。然而,Sass 不会特殊对待这些属性值,一律视为无引号字符串 。

   2-2-1 、字符串(strings)

    SassScript 支持 CSS 两种字符串类型:有引号字符串和无引号字符串,在编译 CSS 文件时不会改变其类型 。

    #{ }

     使用 #{}时,有引号字符串将被编译为无引号字符串,这样便于在 mixin 中引用选择器名:

    @mixin one($t){
        body #{$t}{
              font-size: 50px;
              color: red;
          }
    }
    @include one(".box");

    编译后:

    body .box {
        font-size: 50px;
        color: red;

    }

   2-2-2 、Maps

    只能以名值对的形式出现:

    $map: (key1: value1, key2: value2, key3: value3);

   2-2-3 、颜色 (Color)

    这里提及的有三种定义方式:

      1  #FF0000;

      2  rgb(255,0,0)

      3  rgba(255,0,0,0.5)

  2-3 、运算

    所有数据类型均支持相等运算 == 或 !=,除此之外,每种数据类型也有其各自支持的运算方式。

   2-3-1 、数字运算(Number)

    SassScript 支持数字的加减乘除、取整等运算 (+, -, *, /, %),关系运算 <, >, <=, >= 也可用于数字运算,相等运算 ==, != 可用于所有数据类型。

    其中值得一提的是除法运算,/ 在 CSS 中通常起到分隔数字的用途,SassScript 作为 CSS 语言的拓展当然也支持这个功能,同时也赋予了 / 除法运算的功能。

    2-3-1-1 、分辩在什么条件下/将被视为除法运算符号:

     1  如果值或者值得一部分,是变量或者函数的返回值

     2  如果被圆括号包裹

     3  如果是算术表达式的一部分

      p {
          font: 10px/8px;             // 不是除法运算
          $width: 1000px;
          width: $width/2;            // 是,对应条件1,其中一个值是变量
          width: round(1.5)/2;        // 是,对应条件1,其中一个值是函数的返回值
          height: (500px/2);          // 是,对应条件2,被圆括号包裹
          margin-left: 5px + 8px/2px; // 是,对应条件3,是算数表达式的一部分
      }

      编译后:

      p {
          font: 10px/8px;
          width: 500px;
          width: 1;
          height: 250px;
          margin-left: 9px;
      }

     2-3-1-2 、插值语句 #{ }

      如果需要使用变量,同时又要确保 / 不做除法运算而是完整的编译到 CSS 文件中,只需要用 #{} 插值语句将变量包裹。

      p {
         $font-size: 12px;
         $line-height: 30px;
         font: #{$font-size}/#{$line-height};
       }

      编译后:

      p {
         font: 12px/30px;

       }

   2-3-2、颜色值运算

      (1)颜色值的运算是分段进行的,就是分别计算红、绿、蓝的值:

      p{

        color: #010203 + #040506

       }

       计算:01 + 04 = 05  02 + 05 = 07  03 + 06 = 09   然后编译为:

      p{

        color: #050709;

       }

     (2)数字与颜色值之间也是可以进行算术运算,同样也是分段计算:

      p{

        color: #010203 * 2

       }

       计算:01 * 2 = 02  02 * 2 = 04  03 * 2 = 06   然后编译为:

      p{

        color: #020406;

       }

      (3)rgba()的运算

       在rgba()定义颜色的方法下,必须拥有相等的 a (alpha)值才能运算,因为算数运算不会作用于 a (alpha)值 。

       p{

         color : rgba(255,0,0,0.5) + rgba(0,255,0,0.5)

        }

       编译为:

       p{

         color : rgba(255,255,0,0.5);

        }

      (4)但是颜色的 a (alpha)值,可以通过 opacify 或 transparentize 两个函数进行调整 。

       $translucent-red: rgba(255, 0, 0, 0.5);
       p {
           color: opacify($translucent-red, 0.3);
           background-color: transparentize($translucent-red, 0.25);
        }

       编译为:

       p {
           color: rgba(255, 0, 0, 0.8);
           background-color: rgba(255, 0, 0, 0.25);

        }

       opacify    在原透明度基础上与定义的值相加

       transparentize   在原透明度基础上与定义的值相减

   2-3-3 、字符串运算(String)

    + 可用于连接字符串

      p{

        cursor : e + -resize ;

       }

      编译为:

      p{

        cursor : e-resize ;

       }

      (1)如果有引号字符串(位于 + 左侧)连接无引号字符串,运算结果是有引号的,相反,无引号字符串(位于 + 左侧)连接有引号字符串,运算结果则没有引号。简单的说就是 + 前边的字符串决定运算结果 。

      p:before {
          content: "Foo " + Bar;
          font-family: sans- + "serif";
        }

      编译为:

      p:before {
          content: "Foo Bar";
          font-family: sans-serif;

        }

      (2)运算表达式与其他值连用时,用空格做连接符:

      p{

        margin : 3px + 4px  auto ;

       }

      编译为:

      p{

        margin : 7px auto ;

       }

      (3)#{ }

       在有引号的文本字符串中使用 #{ } 差值语句可以添加动态的值:

       p:before {
          content: "I ate #{5 + 10} pies!";
       }

       编译为:

       p:before {
          content: "I ate 15 pies!";

        }

      注意:如果 #{ } 的值为空,则被视为插入了空字符串 。

时间: 2024-08-03 10:41:17

sass 第三天的相关文章

前端工具SASS的配置及基本用法

声明:网上类似的教程不胜枚举,这里只是记录自己安装的过程.以便自己日后使用. 环境配置过程: 1,安装sass以及环境: 正如gulp是基于node.js一样,sass是基于ruby的,所以在使用sass之前一定要安装ruby. 官方下载链接,由官方的介绍,下载的是ruby 2.2.4(x64)版本. 安装的时候注意,不要更改默认的安装路径.并选择框中的选项 安装好之后在开始菜单打开框中的选项: 然后在命令行中输入: gem install sass 等待系统自动安装完成 常用命令行: sass

SASS的应用

SASS的简单介绍:SASS是一门对css进行编译的扩展语言,使css编译更加具有逻辑性和可塑性 SASS的安装与配置 第一步:安装ruby. ruby的官方下载地址:http://rubyinstaller.org/downloads. 注意事项:1.应当下载与系统匹配的版本,最好不要下载最新版本.对应64位操作系统,一般下载2.3.1版本. 2.安装ruby时应当勾选Add Ruby executables to your PAIH,添加环境变量. 第二步: 方法一:通过cmd命令行中执行g

vue-cli 如何配置sass

第一步:安装对应的node模块 npm install node-sass --save-dev npm install sass-loader --save-dev 第二步:在webpack.base.config.js文件中对loaders规则 进行如下配置 { test:/\.scss/, loader:["style","css","sass"] } 第三步:在视图或者组件中所需要的地方添加style标签如下 <style lang

sass总结

sass是css的辅助工具,它是在css的基础上新增了变量,嵌套,导入,混合,继承,运算,函数等功能,sass补缺了css在编程上的很多缺陷. 1.变量$ //声明变量 $value:12px; html { font-size: $value; } 编译后: html { font-size: 12px; } 2. 嵌套 (1)普通的嵌套 .wrapper { width: 100px; background: red; .inner { width: 50px; background: ye

在vue-cli创建的项目里配置scss

第一步,gitbash进入到项目目录 npm install node-sass --save-dev npm install sass-loader --save-dev 第二步:打开webpack.base.config.js在loaders里面加上 { test: /\.scss$/, loaders: ["style", "css", "sass"] } 第三步,在需要用到scss的地方写上 <style lang="sc

前端技术学习路线及技术汇总

下面是简单整理的一些前端的学习路线:第一阶段: HTML+CSS:HTML主要就是网页编辑.包括HTML进阶.CSS进阶.div+css布局.HTML+css整站开发.Javascript 语言:JavaScript是web前端中最重要的知识,包括Js基础教程.js内置对象常用方法.常见DOM树操作大全.ECMAscript.DOM.BOM.定时器和焦点图.JS基本特效:常见特效,如tab.导航.整页滚动.轮播图.JS制作幻灯片.弹出层.手风琴菜单.瀑布流布局.滚动事件.滚差视图.JS高级特征:

vue中使用scss

第一步 安装scss依赖,cnpm i node-sass sass-loader -D 注:sass-loader用来解析scss文件(-D 是 --save-dev 的简写) 第二步: 在build文件夹下的webpack.base.conf.js的rules里面添加配置 { test: /\.scss$/, loaders: ['style', 'css', 'sass'] } 第三步: scss使用测试:如下测试修改字体颜色 <style lang="scss">

sass中的三种循环

一.for循环 在sass中的@for循环有两种方式: ①@for $i from <start> through <end> ②@for $i from <start> to <end> 其中$i表示变量,start表示开始值,end表示结束值: through表示包括end这个数值:to表示不包括end这个数值: 二.while循环 只要@while后面的条件为true就会执行,直到表达式值为false时停止循环: 三.each  in循环 就是去遍历一

详细比较三个 CSS 预处理器(框架):Sass、LESS 和 Stylus

CSS 预处理器技术已经非常的成熟,而且也涌现出了越来越多的 CSS 的预处理器框架.本文向你介绍使用最为普遍的三款 CSS 预处理器框架,分别是 Sass.Less CSS.Stylus. 首先我们来简单介绍下什么是 CSS 预处理器,CSS 预处理器是一种语言用来为 CSS 增加一些编程的的特性,无需考虑浏览器的兼容性问题,例如你可以在 CSS 中使用变量.简单的程序逻辑.函数等等在编程语言中的一些基本技巧,可以让你的 CSS 更见简洁,适应性更强,代码更直观等诸多好处. 不要再停留在石器时