scss/sass 快速入门

1.1.定义变量

$开头就可以定义点亮:比如$sidebar-width、$highlight-color

1.2.变量引用

1.3下划线  '_' 和 中划线 '-'

sass的变量名可以与css中的属性名和选择器名称相同,包括中划线和下划线

 

2.1嵌套规则

css中重复写选择器是非常恼人的。如果要写一大串指向页面中同一块的样式时,往往需要 一遍又一遍地写同一个ID

2.2父选择器的标识符&;

1.普通用法

编译后

2.特殊用法:给当前&添加上层选择器

2.3群组选择器的嵌套

1.群组在外

编译后:

2.群组在内

编译后:

2-3. 子组合选择器和同层组合选择器:>、+和~;

' '(空格):表示子选择器,可以是直接子间接子

>:表示直接子选择器

+:表示当前元素后一个兄弟元素

~:表示当前元素后全部兄弟元素

2-4. 嵌套属性;

目的

写法1:

写法2:

3. 导入SASS文件;

1.css中的@import规则:只有执行到@import时,浏览器才会去下载其他css文件,这导致页面加载起来特别慢。

2.scss中@import规则:所有相关的样式被归纳到了同一个css文件中,而无需发起额外的下载请求

3.可以省略.sass.scss文件后缀:@import"sidebar";这条命令将把sidebar.scss文件中所有样式添加到当前样式表中。

3-1. 使用SASS部分文件;

sass局部文件的文件名以下划线开头。这样,sass就不会在编译时单独编译这个文件输出css,而只把这个文件用作导入。当你@import一个局部文件时,还可以不写文件的全名,即省略文件名开头的下划线。例如:

         文件themes/_night-sky.scss,导入只需要@import"themes/night-sky";

3-2. 默认变量值;

@import 'b.scss'//---其中A可能存在,也可能不存在
A=#000

问题:需要一个变量$A,但是要从外文件b.scss导入获取变量$A,但是变量A可能不存在。

目的:如果@import 'b.scss'中已经存在变量$A,则生效为导入;不存在,则生效当前声明的

现象:后声明一个变量A=#000,只有最后一处声明A=#555有效且A会覆盖前边的值,最后A=#555;

默认值写法:

@import 'b.scss'//------------------>其中$fancybox-width可能存在,也可能不存在
$fancybox-width: 400px !default;//---->不存在时,这里声明$fancybox-width=400px生效
.fancybox {
    width: $fancybox-width;
}

3-3. 嵌套导入;

_blue-theme.scss

导入

3-4. 原生的CSS导入;

@import,sass与原css语法相同。sass导入css,可以直接导入,为了避免不惜要的麻烦,可以将文件名后缀'.css'修改为'.scss',在导入。

4. 静默注释;

静默注释会出现在打包后的.css文件中。

注意:/* ... */注释的位置不到行尾,scss不知道如何编译,就去除注释

5. 混合器(代码复用);

@mixin:定义混合器,混合器中是一组样式

@include:引用@mixin定义的混合器

6. 使用选择器继承来精简CSS;

6-1. 何时使用继承;

混合器主要用于展示性样式的重用,混合器的名字注重代码含义,比如:圆角混合器,disable混合器

继承针对的是类,而类的名字注重功能性,比如:header,正文,菜单menu,登录块block

不同:混合器复制代码到样式体内,继承时添加名字到样式体前。

6-2. 继承的高级用法;

1.最常用的一种高级用法是继承一个html元素的样式。

尽管默认的浏览器样式不会被继承,因为它们不属于样式表中的样式,但是你对html元素添加的所有样式都会被继承

灰色的<a>链接

2.简单继承复制

.seriousError @extend .important.error

可以继承的范围范围比继承的.important.error的都会完成继承操作,即.important.error可以命中的样式所                          以.seriousError继承了.important.errorh1.important.error。。。,

不可以继承的:范围比.important.error都不继承,例如:‘.important’、‘.error’

3.复制继承简单

#main .seriousError@extend.error

同上,只有完全匹配#main .seriousError这个选择器的元素才会继承.error的样式

注意:#main .error

4.复制继承复制

 

5.不能被继承

#main .error这种选择器序列是不能被继承的

 

 

 

FAQ

 @at-root跳出嵌套

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值