zoukankan      html  css  js  c++  java
  • 在Sass中,我们可以使用“@for”来实现循环操作

    CSS、Sass、Scss,以及sass和scss的区别

    CSS 指层叠样式表 (Cascading Style Sheets)

    Sass (Syntactically Awesome StyleSheets),是由buby语言编写的一款css预处理语言,和html一样有严格的缩进风格,和css编写规范有着很大的出入,是不使用花括号和分号的,所以不被广为接受。 Sass 是一款强化 CSS 的辅助工具,是对 CSS 的扩展,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、继承(extend)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。使用 Sass 以及 Sass 的样式库(如 Compass)有助于更好地组织管理样式文件,以及更高效地开发项目, 其后缀是.sass。

    SCSS (Sassy CSS),一款css预处理语言,SCSS 是 Sass 3 引入新的语法,其语法完全兼容 CSS3,并且继承了 Sass 的强大功能。也就是说,任何标准的 CSS3 样式表都是具有相同语义的有效的 SCSS 文件。SCSS 需要使用分号和花括号而不是换行和缩进。SCSS 对空白符号不敏感,其实就和css3语法一样,其后缀名是分别为 .scss。

    sass和scss的关系

    sass和scss其实是一样的css预处理语言,SCSS 是 Sass 3 引入新的语法,其后缀名是分别为 .sass和.scss两种。
    SASS版本3.0之前的后缀名为.sass,而版本3.0之后的后缀名.scss。
    两者是有不同的,继sass之后scss的编写规范基本和css一致,sass时代是有严格的缩进规范并且没有‘{}’和‘;’。
    而scss则和css的规范是一致的。

    插入文件

     @import "foo.scss"; //都会导入文件 foo.scss
     @import "foo"; //都会导入文件 foo.scss
     @import "http://foo.com/bar";  // 插入外部文件
     @import "foo.css"; // 等同于css的import命令。
    
    

    混合器 Mixin (避免不停地重复一段样式)

    // 使用@mixin命令,定义一个代码块。
      @mixin left {
        float: left;
        margin-left: 10px;
      }
        //使用@include命令,调用这个mixin。
      div {
        @include left;
      }
      
      // mixin的强大之处,在于可以指定参数和缺省值。
      @mixin left($value: 10px) {
          float: left;
          margin-right: $value;
      }
        // 使用的时候,根据需要加入参数:
      div {
        @include left(20px);
      }

    在Sass中,我们可以使用“@for”来实现循环操作。其中,Sass中的@for循环有2种方式。

    方式1:@for $i from 开始值 through 结束值

    方式2:@for $i from 开始值 to 结束值
    @for $i from 1 through 3
    {
        .item-#{$i}
        {
            width:(20px * $i);
        }
    }

    编译出来的CSS代码如下:

    .item-1
    {
        width:20px;
    }
    .item-2
    {
        width:40px;
    }
    .item-3
    {
        width:60px;
    }

    分析:

    如果将“@for $i from 1 through 3”改为“@for $i from 1 to 3”,则编译出来的CSS代码如下:

    .item-1
    {
        width:20px;
    }
    .item-2
    {
        width:40px;
    }

    举例2:

    @for $i from 1 through 3
    {
        .border-#{$i}
        {
            border:#{$i}px solid red;
        }
    }

    编译出来的CSS代码如下:

    border-1
    {
        border: 1px solid red;
    }
     
    .border-2
    {
        border: 2px solid red;
    }
     
    .border-3
    {
        border: 3px solid red;
    }
     
  • 相关阅读:
    【Day 04】 德州实行最严堕胎法,女性权益何去何从?
    【Day 03】 刚出生就遭遇疫情的娃娃们,将受到哪些影响?
    【Day 01】 房子不用买了,打印出来就能住:3D打印将如何改变居住生态?
    docker安装mysql-MacBook pro m1芯片
    jmeter调接口报415
    安装jenkins
    好用的编辑器总结
    屏障、释放一致性及原子操作
    Java的锁机制
    Java线程模型
  • 原文地址:https://www.cnblogs.com/yeminglong/p/12734904.html
Copyright © 2011-2022 走看看