• css学习——sass(6)


    第一步,全局安装 sass

    在命令行工具:

    npm install -g sass

    查看版本

    sass --version

     第二步:手动将sass 编译为css

    1、创建一个test.scss :

     2、在命令行终端 输入sass test.scss test.css进行编译

     第三步、监听者目录,sass 自动编译: 通过传参数 --watch 告诉sass编译器监听者目录

    sass-style是被监听的目录,css-style是被编译成css文件的存放目录

    sass --watch sass-style:css-style

    监听前 :

    监听命令 :

     监听后:

    三、修改sass编译输出css的格式:--style 默认[expanded (default), compressed],目前只有这个2个值,可能是和我的版本有关系(1.56.0),默认是expanded

    其他的版本可能有的值 

    1、nested:嵌套;默认

    2、compact:紧凑 ;

    3、expanded:展开;

    4、compressed:压缩

    格式比较: 

    sass --watch sass-style:css-style --style compressed

     sass --watch sass-style:css-style --style expanded

    Sass 的用法:

    第一:变量、混入@mixin name/@include name;占位符(%name)/选择器 继承extend %name;

    1-1:变量的类型:number、string、boolean、null、map、list;

    变量声明:$color:#fff;

    1-2:混入的总结:

    1、可以重复使用的css规则,一次声明多次使用;

    2、不使用不会编译到,目标文件。

    3、可以传参数。

    1. // 声明变量
    2. $primary:#fff;
    3. // 无参数 mixin
    4. @mixin border {
    5. border: 2px solid red;
    6. }
    7. /**
    8. * 声明mixin 带参数
    9. *
    10. * 参数不传报错
    11. * **/
    12. @mixin ellipsis($line) {
    13. overflow: hidden;
    14. text-overflow: ellipsis;
    15. display: -webkit-box;
    16. -webkit-line-clamp:$line;
    17. -webkit-box-orient: vertical;
    18. }
    19. /**
    20. * 声明mixin 带参数,有默认值
    21. *
    22. * 1、不传参数:@include text;
    23. *
    24. * 2、按顺序传参:@include text(20, 600,2em);
    25. *
    26. * 3、指定传参:@include text($left:4em);
    27. **/
    28. @mixin text($size:16,$weight:400,$left:2em) {
    29. font-size: $size;
    30. font-weight: $weight;
    31. padding-left: $left;
    32. }
    33. /*
    34. *可变参数
    35. *
    36. *@include linearGradient(to top, red,green);
    37. */
    38. @mixin linearGradient($direction,$gradient...) {
    39. background-color: nth($gradient,2);
    40. background-image:linear-gradient($direction,$gradient)
    41. }

    1-3:继承、占位符总结

    共同点:

    1、都是@extend引入;

    2、都是生成分组选择器的形式,

    不同点:

    1、类选择器:不继承也会被编译到目标文件;

    2、占位符选择器:需要继承才会编译到目标文件;

    混入和继承的区别:

    混入:每一个include都是复制一份;使代码量变大。

    继承:使用分组选择器封装继承部分;代码量不变。

    第二操作符:

    1、关系运算符:==、!=,>、 < 、>= 、<=,

    2、逻辑运算符:and 、or 、not;

    3、数字操作符: +、 * 、/、 %;

    关系运算符:

     逻辑运算符:

     第三:插值语句:#{变量},应用到选择器,属性名,属性值;

    $size:20px;
    $lineheight:30px;
    $class:class-name;
    $color:color;

    .#{$class}{
         color: red;
    }
    .test{
        border-#{$color}:red ;
    }
    .text{
        @include test(2);
        font-size:#{$size}/#{$lineheight};
    }

    第四:sass 常见函数:

    颜色:lighten、darken、opacity ;

    数值:abs、ceil、floo、max、min、random;

    列表:lenght、nth、append、index;

    map:map-get、map-has-key、map-keys,map-values;

    自检函数:variable-exists;

    第五流程控制指令和循环:@if、 @else、@else if、@for 、@each 、@while,三元运算符

    1. @mixin test($type) {
    2. @if ($type>2 and $type<10){
    3. color: red;
    4. }
    5. @else if( $type>11 and $type<20){
    6. color: blue;
    7. }
    8. @else{
    9. color: green;
    10. }
    11. }
    12. .text{
    13. @include test(5);
    14. }
    15. .text2{
    16. @include test(15);
    17. }
    18. .text3{
    19. @include test(1);
    20. }
    21. // 不包含4
    22. @for $i from 2 to 4{
    23. .to-#{$i}{
    24. width: 10px;
    25. }
    26. }
    27. // 包含4
    28. @for $i from 1 through 4{
    29. .through-#{$i}{
    30. width: 10px;
    31. }
    32. }
    33. $list: red green blue pink;
    34. @each $color in $list{
    35. $index:index($list, $color);
    36. .p#{$index - 1}{
    37. background-color: $color;
    38. }
    39. }
    40. $condition:10;
    41. @while $condition>0 {
    42. .col-#{$condition}{
    43. background-color: red;
    44. }
    45. $condition:$condition - 1
    46. }
    47. $var:10;
    48. .test{
    49. color:if($var == 10,red,blue);
    50. }

    第六:@function

    1. @function test($count){
    2. @return percentage(1 / $count);
    3. }
    4. @for $i from 1 to 5{
    5. .p-#{$i}{
    6. width: test($i);
    7. }
    8. }

    参数规则和@mixin一样;

    第七:@use

  • 相关阅读:
    StoryDALL-E复现(基于预训练文本到图像Transformer的故事续编)
    网络安全(黑客)——自学篇
    git 创建项目,创建dev分支,并且关联和提交dev分支,删除无用分支
    世界经济论坛:ChatGPT等生成式AI,对全球23%岗位产生巨大影响
    mybatis-plus下_databaseId的使用
    PC_浮点数加减运算
    【Java-LangChain:面向开发者的提示工程-8】聊天机器人
    Android Studio实现一个新闻APP
    Oracle/PLSQL: BFilename Function
    河北首家城商行传统核心业务国产化,TDSQL突破三“最”为秦皇岛银行保驾护航
  • 原文地址:https://blog.csdn.net/meng_xiaoxiao/article/details/127724745