发表于: 2018-09-06 00:36:24

1 715


今天完成的事情: 

1、任务11使用sass编写完成
明天计划的事情:(一定要写非常细致的内容) 

1、学习熟练sass用法,尤其混合、继承、导入scss文件的区别以及各种使用的场合。
遇到的问题:

1、 继承与混合的混淆,因为有部分样式在input1和input2需要重复使用,考虑使用某种方式简写:

开始使用继承方式,首先提前写好公用样式.icon1,然后在下面.icon使用@extend继承

.main {
height: 14rem;
padding-top: 0.75rem;
background-color: $spacecolor;
.input1{
@include input;
.icon{
@extend .icon1;
@include border-right;
}}}

编译后为:

.main .input1 .icon .icon1{**}

而使用混合方式,提前写好公用样式@mixin icon1,然后在下面.icon使用@include继承

.main {
height: 14rem;
padding-top: 0.75rem;
background-color: $spacecolor;
.input1{
@include input;
.icon{
@include icon1;
@include border-right;
}}}

编译后:

.main .input1 .icon{**}

两者对比可以看出混合与继承的区别,继承是对整个选择器的继承,即把类也继承过来,而混合则是引入其中的内容。

收获:

1、sass的混合

混合器

当你的工程中需要重复使用大量相同的样式时,单单使用变量是无法解决的,这时可以使用混合器(标示符为@mixin)来使用重复的样式,在调用处使用@include+name进行调用,此时相当于把@mixin里面的样式放在@include的位置上,但是过量的使用混合器会导致样式表过大,加载缓慢,所以首先我们要了解使用场景。

--何时使用

当你发现自己在重复使用一段样式,那么就应该构建一个优良的混合器,尤其是这段样式本身就是一个逻辑单元,比如是放在一起有意义的一组属性,对于何时使用这个问题,经验之谈就是你很容易为你的混合器起名字,因为你的混合器最好是用来实现某个具体样式的,如rounded-corners,使用语义化命名更加便于使用。

--选择器的css规则

选择器里面不仅可以包含属性,也可以包含css规则,如选择器和选择器中的属性,甚至可包含父选择器标示符&。

--混合器传参或默认

混合器传参:@include可以像javascript的函数一样进行传参,可以直接传入,也可以使用$name: value的形式,这样的话,不需要按照原参数顺序指定value

2.sass的继承

选择器继承

选择器继承是指一个选择器可以继承另一个选择器的所有样式,使用@extend+name实现,选择器的继承不仅实现继承本身的样式,也会继承与之组成的组合选择器的样式。
--何时使用继承

一般继承建立在语义化的基础上,当一个类明显属于另一个类时,使用继承再合适不过了。

--用法

可以继承一个html元素的样式,在继承时,若@extend后面是.important.error那么只会继承这两个类下面的共有的样式,不会分别继承.important 和.error下的样式。

--细节

继承比混合器所占体积更小,会使得站点的速度更快,当使用继承发生样式冲突时,按照层叠的规则选择。

--最佳实践

不要使用后代选择器去继承,否则css选择器中的数量很快就会失控。







返回列表 返回列表
评论

    分享到