美文网首页
sass学习笔记

sass学习笔记

作者: squidbrother | 来源:发表于2019-12-24 13:40 被阅读0次
概述

sass属于css预处理器:
一种新的语言将CSS作为目标生成,然后开发者就能使用这种语言进行编码工作
预处理器通常可以实现浏览器贱人,变量,结构体等功能,代码更加易于维护。

作用:
存在即合理:
1.减少后代选择器,过多层级重复代码的书写
2.变量的概念,多处引用,只改被引用的变量值即可
3.css压缩功能

优势:
可以使用变量,常量,嵌套,混入,函数等功能,更有效的写出css
sass有两套语法规则,
第一种使用缩进作为分隔符来区分代码块的;
第二种是和css使用{}来作为分隔符,后者又称为scss;
强壮的库:compass 使其功能更加的丰富

特征:
sass与scss 区别与使用
sass是老版本的,新版本是scss,相较于老版本更稳定,坑也更加少
sass 书写没有{},没有结束符号;

侵入程度更少,适合已有项目中css快速转型到scss

同类型css预编译语言库比较:
sass诞生于2007年
less诞生于2009年,受sass影响比较大
stylus 诞生于2010年,来自nodejs社区,主要为node项目进行css预处理(人气较前2者较少)

sass的安装

安装ruby
1.要先安装系统环境变量ruby
sass基于Ruby语言开发而成,因此安装sass前需要安装Ruby。(注:mac下自带Ruby无需在安装Ruby!)
因为安装sass使用的gem是ruby的语言

注:
安装过程中请注意勾选Add Ruby executables to your PATH添加到系统环境变量
如果您不知道要安装哪个版本,并且您正开始使用Ruby,我们建议您使用 Ruby+Devkit 2.6.X (x64) 安装程序。

查看ruby是否安装成功
ruby -v
请尽可能用比较新的 RubyGems 版本,建议 2.6.x 以上。

正式安装sass
Ruby自带一个叫做RubyGems的系统,用来安装基于Ruby的软件。
我们可以使用这个系统来 轻松地安装Sass和Compass。

gem install sass
gem install compass

查看sass是否安装成功
sass -v

查看compass版本
compass -v

sass常用命令

单文件转换命令
sass input.scss output.css

单文件监听命令
sass --watch input.scss:output.css

监听整个目录:
sass --watch app/sass:public/stylesheets

编译配置信息
sass input.scss output.css --style compact

--style表示解析后的css是什么排版格式;

sass内置有四种编译格式:
1. nested  --  格式缩进,使其有视觉层次感
2. expanded  --  常规的格式排版
3. compact  --  每个独立元素样式单独一行,不回车
4. compressed  --  全部压缩一行

--sourcemap表示开启sourcemap调试。开启sourcemap调试后,会生成一个后缀名为.css.map文件

变量类型以及声明与作用域

单值变量
【注】:
变量有作用域,需要注意;
且位置有先后要求,先声明,再引用,位置不能颠倒;

$color:red;
body {
    color: $color;//正确的位置
    color:  $color2;//报错,先声明,后引用
        $color2: blue; 
    
}
footer {
    color: $color2;//报错,局部声明有作用域范围  
}

多值变量
一个变量值是一组数据,通过nth(变量名,索引); 来设置,
值得注意的是。索引从1开始

$li-padding:10px 20px 30px 40px;
.li1 { padding-left:nth($li-padding,1);}
.li2 { padding-left:nth($li-padding,2);}
.li3 { padding-left:nth($li-padding,3);}

键值对类型的变量
格式
变量名:(键名:值,键名:值); 样式名:map-get(变量名,键名);

$mapsval:(color1:red,color2:yellow);
.li4 { color:map-get($mapsval,color1);}
.li5 { color:map-get($mapsval,color2);}
运算
定义变量:
$width1:10px;
$width2:15px;

【 加法运算 】
//-数字类型
.box3 { width:$width1+$width2; }
//-减法运算 (记得空格隔开,否则会认定为连字符,和被减数组成一个新的变量)
.box3 { width:$width1 - $width2; }

//-字符串拼接
.box3 { content:A + 'bc'; }

//-scss中的模板字符串
$version:1.5;
.box3:after { content:"当前版本: #{$version} "}

【除法运算】
.p1 { width:$width1/2; }
//--单纯数字运算需要加小括号,单位符号继承与前者
.p2 { width:(300px/2); }
混合传参以及默认值

1.混合定义样式传参与默认值

@ mixin mybox($bg: #FFF) {
    width: 300px;
    height: 300px;
    backgroud: $bg
}
.box1 {@
    include mybox();
}
.box2 {@
    include mybox(green);
}

注:
多个参数, 需要注意先后顺序
如果不希望讲究顺序, 则需要以键值对的形式传参如

@ include mybox($fz: 15px, $bg: #F60)

如果参数多的话, 使用这个方式更加灵活, 容错率低一些; 否则要严格按照顺序传值

1-2.一个形参, 多个实参( 使用类似js解构的方式完成)

@mixin box($sd...) {
     box - shadow: $sd;
 }
 .box1 {
   @ include box(0 1px 3px #333,1px 0 3px # F60);
}

1-3.传递内容到content
例: 媒体查询, 将样式写在不同媒体宽度内;

@mixin a {
   @media only screen and(min - device - width: 320px) and(max - device - width: 568px) {
       @content;
    }
}
@include a {
    font - size: 12px;
}
继承的方式

写法一:

.block { padding:5px;}
p { @extend .block }

写法二:

@mixin block {padding:5px;}
p { @include block; }

效果相同的情况下,如何选择?
@extend与@mixin实现效果相同,应该如何选择:
官方建议:
为了性能,选择Mixins吧!

书写方式

1.链式继承、类似洋葱圈,后者继承前者,又拥有自己的特点

.boxs { border:1px #ccc solid;}
.box1 { @extend .boxs; color:green; }
.box2 { @extend .box2; background:pink; }

2.属性嵌套
a标签嵌套书写,省略一个a...

a {
    color:#333;
    &:hover {
        color:blue;
    }
    &.btn {
        color:green;
    }
}
注意:

1.sass中使用中文,如
font-style:'宋体'; font-family:font-style;
会报错,需要在sass中,添加 @charset "UTF-8";

2.sass新版本scss对已有项目更加友好,
直接将原有css后缀名修改为scss即可使用,成本更低

相关文章

  • sass笔记-1|Sass是如何帮你又快又好地搞定CSS的

    Sass学习笔记持续整理中,开篇不讲怎么安装,sass是什么,这些搜索引擎会告诉你,我们从sass的作用开始讲起,...

  • gulp的配置

    学习笔记整理、总结 一、 sass、ruby、compass之间的关系和作用 sass是css预处理器,是基于ru...

  • Sass学习笔记

    ​ Sass是使用Ruby语言编写的css预处理语言,诞生于2007年。Sass, LESS, stylus等...

  • sass学习笔记

    title: vue 中使用 sass Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了...

  • SASS学习笔记

    本文github地址: 安装SASS SASS有2中格式,一种是早期具有缩进风格的sass文件,一种是当前推荐的s...

  • Sass 学习笔记

    本文以 sass 语法点为主线展开,但语法细节不在此赘述,如有疑问请移驾至 http://sass-lang.co...

  • Sass学习笔记

    1.优越体现 可以定义变量,方便统一修改和维护。 可以进行选择器的嵌套,表示层级关系。 如导入其他sass文件,最...

  • sass学习笔记

    安装运行 1.下载ruby并安装 2.安装之后打开命令行执行gem命令,检查是否已经安装好 安装完ruby之后,在...

  • SASS学习笔记

    SASS学习笔记 文件后缀名 sass有两种后缀名文件:一种后缀名为sass,不使用大括号和分号;另一种是scss...

  • SASS 学习笔记

    什么是SASS SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变...

网友评论

      本文标题:sass学习笔记

      本文链接:https://www.haomeiwen.com/subject/vegpictx.html