HTML5技术

2.sass变量、嵌套、混合(mixin)、继承拓展、@import、comment - 空一座旧城,守一个旧人

字号+ 作者:H5之家 来源:H5之家 2017-12-08 16:01 我要评论( )

变量、嵌套、混合(mixin)、继承拓展、@import、comment变量的意义 在sass里我们可以定义多个变量来存放颜色、边框等等的样式,这样就可以在下面想要使用样式的时候使用变量了 这样的优点就是便于维护,更改方便 变量的使用 可以通过$来定义变量,在变量名

变量、嵌套、混合(mixin)、继承拓展、@import、comment 变量的意义

在sass里我们可以定义多个变量来存放颜色、边框等等的样式,这样就可以在下面想要使用样式的时候使用变量了

这样的优点就是便于维护,更改方便

变量的使用

可以通过$来定义变量,在变量名字中可以使用-和_来作为连接,并且-和_是可以互通的,就是用起来一模一样。

变量的值可以是字符串、数字、颜色等等,在变量里还可以使用其他变量,使用的时候直接写变量名就好了

例如

$primary-color:#ff6600; $primary$primary.$primary-border; }

---》

#ff6600.1px solid #ff6600; }

嵌套的使用

合理的使用嵌套语法,可以使我们编写代码更为快捷

假设我们想写这样的css:

.100px; } ..left; listnone5px; }

在sass里我们可以这样写

.100px; ulli left; listnone5px

大家会发现,写出来的代码父和子之间都有空格隔开,如果我们需要给a加上伪类的话我们这样写

.100px; a#fff#ff6600

在里面就会出现这样的情况

.hover #ff6600; }

我们发现在a和:hover之间有了空格,这样是不好的,所以我们需要在写的时候在:hover之前把a加上,这样就需要用到在之类里引用父类选择器的方式,我们可以用&符号代替父类

例如:

.100px; a#fff#ff6600

这样就好了,下面来个完整的代码:

.100px; ullileft; listnone5px; } ablock#hover#f60redtext{ font15px

-----》

.100px; } ..left; listnone5px; } .block#.hover #f60red; } .nav .nav-text { font15px; }

嵌套属性

我们可以把一些个复合属性的子属性来嵌套编写,加快编写速度,例如

bodyHelvitica15pxbold.1px solid rednonenone.all2s

-----》

body { fontHelvitica; font15px; fontbold; } .1px solid red; bordernone; bordernone; } .page-next { transitionall; transition2s; }

mixin 混合

你可以把它想象成一个有名字的定义好的样式

每一个mixin都有自己的名字,类似于js里的函数定义方法如下

@mixin 名字(参数1,参数2...){ ... }

使用方法是在其他选择器css样式里通过@include引入,其实就相当于将mixin里的代码写入到这个选择器的css里,如下:

@mixin alert #f60; background#f60; apinkared.alert-warning{ @include alert; }

-----》

.#f60; background#f60; } .pink; } .red; }

刚才是没有参数的mixin,mixin也可以拥有参数,需要注意的是:

例如:

@mixin $color; background$background; a($color).alert-warning{ @include alert(red,blue); } .alert-info{ @include blue); }

------》

.red; backgroundblue; } .#cc0000; } .blue; backgroundred; } .#0000cc; }

继承拓展 extend

如果我们有一个选择器想要拥有另一个选择所有的东西,不管是样式还是子元素等等,可以使用@extend来继承

大家需要注意的是,++b继承a的时候,a的子元素设置了样式,也会给b的子元素设置样式++,达到完全一样的情况,例如:

.5px; } .bold15px.alert-info { @skyblue; }

----》

.info 5px; } ..alert-info a { fontbold; font15px; } .skyblue; }

partials

在以前咱们编写css的时候,一个css引入另一个css需要使用@import,其实这是不好的,会多发一次http请求,影响咱们站点的响应速度。

在sass里,咱们可以把小的sass文件分出去,叫做partials,在某个sass里通过@import ‘partials名’去引入,注意路径哟,这样的话就可以把partials里的代码引到咱们大的sass里一起编译

  • 需要注意的是 partials的文件名前要加_
  • _base.sass :

    body

    style.sass : @import "base"; .alert { padding:5px; } .alert a { font:{ weight:bold; size:15px; } } .alert-info { @extend .alert; backgournd:skyblue; }

    ----------->

    body .info 5px; } ..alert-info a { fontbold; font15px; } .skyblue; }

    这样的话我们就可以把模块化的思想引入到sass里了

    comment注释

    sass里的注释有三种

    多行注释:压缩后不会出现在css里 /* */

    单行注释: 不会出现在css里 //

    强制注释:压缩后也会出现在css里 /! /

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • Linux系列教程(二十二)——Linux的bash变量 - YSOcean

      Linux系列教程(二十二)——Linux的bash变量 - YSOcean

      2017-11-19 08:00

    • 【javascript】详解变量,值,类型和宿主对象 - 外婆的彭湖湾

      【javascript】详解变量,值,类型和宿主对象 - 外婆的彭湖湾

      2017-09-03 13:26

    • ASP.NET Core配置环境变量和启动设置 - Sweet-Tang

      ASP.NET Core配置环境变量和启动设置 - Sweet-Tang

      2017-07-05 09:03

    • JS 和 a href className JS编写顺序与运行顺序 字符串或变量嵌入中括号 代替 点号 代表属性 - 比

      JS 和 a href className JS编写顺序与运行顺序 字符串或变量嵌入中括

      2017-06-29 10:00

    网友点评
    4