sass学习研究_html/css_WEB-ITnose

php中文网
发布: 2016-06-21 08:56:38
原创
1078人浏览过

这篇文章是算是前两天学习sass的一个摘要和总结吧,简单记载下。希望对大家有所帮助


立即学习前端免费学习笔记(深入)”;

对于什么是sass,我想现在大家可能都有所了解了。其实就是css的一种开发工具,或者也可以说是将css编程化。其实和less是有很大的相似点的。或者说几乎都是相同的。但是对于这两种的高级用法,其实个人更加的偏向于sass!


立即学习前端免费学习笔记(深入)”;


立即学习前端免费学习笔记(深入)”;

关于sass的安装以及编译之类的这个东西上网一查一大把的就不多说了

我这里是用koala编译的。


立即学习前端免费学习笔记(深入)”;


立即学习前端免费学习笔记(深入)”;


立即学习前端免费学习笔记(深入)”;

下面简单的总结下sass的几个特点吧。


立即学习前端免费学习笔记(深入)”;

1、变量:


立即学习前端免费学习笔记(深入)”;

sass中允许使用变量,在sass中变量都是以$开头的。


立即学习前端免费学习笔记(深入)”;

$blue:#249804;

div{

color:$blue;

}


立即学习前端免费学习笔记(深入)”;

如果需要将变量嵌入在字符串中则就必须写在#{}中


立即学习前端免费学习笔记(深入)”;

类似于我在汇联易中自定义的栅格宽度的sass写法:

@mixin colWidth($value:20%) {

    -webkit-box-flex: 0;

    -webkit-flex: 0 0 $value;

    -moz-box-flex: 0;

    -moz-flex: 0 0 $value;

    -ms-flex: 0 0 $value;

    flex: 0 0 $value;

}


立即学习前端免费学习笔记(深入)”;

$i:1;


立即学习前端免费学习笔记(深入)”;

@while $i

    .col-#{$i}{

        @include colWidth($i*1%);

        $i:$i+1;

    }

}


立即学习前端免费学习笔记(深入)”;

//这里用到的Mixin和循环后面会讲到。


立即学习前端免费学习笔记(深入)”;

变量非常的简单,基本也就这样。


立即学习前端免费学习笔记(深入)”;

2、计算功能


立即学习前端免费学习笔记(深入)”;

这个非常的简单,举个例子就可以了


立即学习前端免费学习笔记(深入)”;

在上面的例子中也用到了,比如$i*1%;

再比如:margin:(10px+2px);


立即学习前端免费学习笔记(深入)”;

3、嵌套


立即学习前端免费学习笔记(深入)”;

这里的嵌套给我的感觉就类似于dom树的树状结构似的。


立即学习前端免费学习笔记(深入)”;

很简单,举个例子就可以了

.hly{

.expense-type-icon-list {

            box-shadow: inset 0px 3px 5px 3px rgba(0, 0, 0, .26);

            .scroll {

                float: left;

                .scroll-content-container {

                    width: 35em;

                    padding: 8px 10px;

                    float: left;

                    img {

                        float: left;

                        margin-left: 5px;

                    }

                    img:first-child {

                        margin-left: 0px;

                    }

                }

            }


立即学习前端免费学习笔记(深入)”;

        }

}


立即学习前端免费学习笔记(深入)”;

对应的生成出来的css:


立即学习前端免费学习笔记(深入)”;

        .hly .create-invoice .expense-type-icon-list {

  box-shadow: inset 0px 3px 5px 3px rgba(0, 0, 0, 0.26); }

  .hly .create-invoice .expense-type-icon-list .scroll {

    float: left; }

    .hly .create-invoice .expense-type-icon-list .scroll .scroll-content-container {

      width: 35em;

      padding: 8px 10px;

      float: left; }

      .hly .create-invoice .expense-type-icon-list .scroll .scroll-content-container img {

        float: left;

        margin-left: 5px; }

      .hly .create-invoice .expense-type-icon-list .scroll .scroll-content-container img:first-child {

        margin-left: 0px; }


立即学习前端免费学习笔记(深入)”;


立即学习前端免费学习笔记(深入)”;

4、继承

sass允许一个选择器去继承另一个选择器,比如现在有个class1,

.class1{

border:1px soild #ddd;

}


立即学习前端免费学习笔记(深入)”;

现在有class2要继承class1的属性,则用@extend命令

.class2{

豆包爱学
豆包爱学

豆包旗下AI学习应用

豆包爱学 674
查看详情 豆包爱学

@extend .class1;

font-size:1.5em;

}


立即学习前端免费学习笔记(深入)”;

5、Mixin

这个可以理解为宏定义,angularjs中的指令,在变量的举例中就有说到了。这里再具体的说下


立即学习前端免费学习笔记(深入)”;

这里我们通过一个mixin来定义一个代码块

还是拿上面的例子:

@mixin colWidth($value:20%) {

    -webkit-box-flex: 0;

    -webkit-flex: 0 0 $value;

    -moz-box-flex: 0;

    -moz-flex: 0 0 $value;

    -ms-flex: 0 0 $value;

    flex: 0 0 $value;

}

用@include来调用它。

div{

@include colWidth(30%);

}


立即学习前端免费学习笔记(深入)”;

看到这里大家可能会有个疑问,为什么这里的mixin中有个参数在里面?

其实这个也就是Mixin的强大之处了(当然,你也可以不指定)

当指定了以后,我们可以传入不同的值,当然也可以缺省,当缺省的时候就是默认的指,例如上面的例子就是20%


立即学习前端免费学习笔记(深入)”;

6、颜色函数

说实话这个我不是很懂,因为基本我觉得是用不到的。简单从网上找了些例子:

lighten(#cc3, 10%) // #d6d65c

  darken(#cc3, 10%) // #a3a329

  grayscale(#cc3) // #808080

  complement(#cc3) // #33c

大家这个也可以多查查。


立即学习前端免费学习笔记(深入)”;

7、插入文件

简单的一个命令@import

@import("path/fileName.scss");

如果是.css的文件

@import "fileName.css";


立即学习前端免费学习笔记(深入)”;

8、条件语句

从这里开始应该可以说是sass的一些高级的用法了吧


立即学习前端免费学习笔记(深入)”;

@if可以用来判断

div{

@if 1+2 ==3 {border:1px soild #ddd};

@if 3

}


立即学习前端免费学习笔记(深入)”;

当然,既然存在if,必然少不了else!用法如下:

@if lightness($color) > 30% {

    background-color: #000;

  } @else {

    background-color: #fff;

  }


立即学习前端免费学习笔记(深入)”;

9、循环语句

sass支持for循环,while循环以及each命令


立即学习前端免费学习笔记(深入)”;

for循环:

@for $i form 1 to 10{

.class-#{i}{

margin-left:#{i}px;

}

}


立即学习前端免费学习笔记(深入)”;

while循环(同样是汇联易中的例子):

@mixin colWidth($value:20%) {

    -webkit-box-flex: 0;

    -webkit-flex: 0 0 $value;

    -moz-box-flex: 0;

    -moz-flex: 0 0 $value;

    -ms-flex: 0 0 $value;

    flex: 0 0 $value;

}


立即学习前端免费学习笔记(深入)”;

$i:1;


立即学习前端免费学习笔记(深入)”;

@while $i

    .col-#{$i}{

        @include colWidth($i*1%);

        $i:$i+1;

    }

}


立即学习前端免费学习笔记(深入)”;

each例子:

@each $member in a, b, c, d {

   .#{$member} {

     background-image: url("/image/#{$member}.jpg");

   }

  }


立即学习前端免费学习笔记(深入)”;


立即学习前端免费学习笔记(深入)”;

10、自定义函数

当然也是有特殊符号的:@function @return


立即学习前端免费学习笔记(深入)”;

@function double($i){

@return $i*2;

}


立即学习前端免费学习笔记(深入)”;

div{

margin:double(2em);

}


立即学习前端免费学习笔记(深入)”;


立即学习前端免费学习笔记(深入)”;

最后说一句,在项目中尽量还是少用sass的高级用法,因为可能项目跑起来编译特别慢,甚至会卡在高级用法中编译不出sass别的样式


立即学习前端免费学习笔记(深入)”;

比如我自定的栅格用的Mixin,这个在项目能够很快被编译,但是配合了while循环就会卡死。后来我是引入koala编译出来的css文件引入到项目中的~


立即学习前端免费学习笔记(深入)”;

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号