博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sass部分知识小结
阅读量:6864 次
发布时间:2019-06-26

本文共 3495 字,大约阅读时间需要 11 分钟。

 1、sass安装
    因为sass是基于ruby写的,所以首先必须安装ruby。去ruby官网下载安装ruby安装包,在安装过程中,勾选上添加到环境变量,这样可以在安装的时候自动将安装路径添加到环境变量中。
    ruby安装成功后,安装sass,在命令行中输入“gem  install sass”进行安装。、
2、sass的编译
    sass有两种后缀名,一种是以“.sass”结尾的,另一种是以“.scss”结尾的,一般情况下,都是用后者。
    将写好的scss文件进行编译,编译方法:可以在命令行中项目目录下输入“sass input.scss output.css ”.
    还能实现实时自动编译:“sass --watch inpyt.scss:output.css”
我用的是webstorm编写软件,webstorm是支持sass编译的,用webstorm安装sass的方法可百度,很简单。
3、sass变量
    “$”:用来声明变量,例如$blue:blue;  变量可以直接使用,如:“div{color:$blue;}”,编译过后----div{color : blue;}
    变量也是有作用域的,分为全局作用域和局部作用域;如下:
    $blue:blue;  //全局变量
    div{
        $blue:blue;  //局部变量
        color:$blue;
    }
    局部变量只在那一块中起作用,不影响全局变量的定义。 也可以将局部变量转换为全局变量,使用“!global”;如div{$blue:red !global;   color:$blue;}  a{ color: $blue;  }
    在sass中,变量名的定义既可以使用中划线也可以使用下划线,这两者是互通的,意思就是说,在变量定义的时候使用的是中划线,在引用变量的时候可以使用下划线,即将中划线替换成下划线。
4、嵌套css规则
    使用sass可以进行样式的嵌套,使用css,有时候会要重复写很多代码,使用sass嵌套则可以减少很多代码量。例子如下:
  #content {
    article { 
         h1 { color: #333 }
         p { margin-bottom: 1.4em } 
     } 
     aside { #EEE }
 } 
 /* 编译后 */
 #content article h1 { color: #333 }
 #content article p { margin-bottom: 1.4em }
 #content aside { 父选择器的标识符&
    在sass中,对于简单的嵌套是没问题的,但如果涉及到父选择器中使用伪类的话,简单的嵌套就行不通了,所以现在有个标识符“&” 可以解决这个问题。例如:
    article a{
        color:blue ;
        &:hover:red;
    } 
    //编译过后
     article a { color: blue }
   article a:hover { color: red }
6、群组选择器的嵌套
     像 .button button会命中button元素和类名为.button的元素,这种选择器叫做群组选择器。群组选择器的规则会对群组中任何一个选择器的元素生效。例子如下所示:
    .container {
        h1, h2, h3 {margin-bottom: .8em}
    } 
    //编译后
     .container h1, .container h2, .container h3 { margin-bottom: .8em }
也可以是:
     nav, aside {
        a {color: blue}
       }
//编译后
    nav a, aside a {color: blue} 
7、子组合选择器和同层组合选择器:>、+和~;
        这仨个选择器必须配合其他的选择器一起使用,以制定浏览器仅选择某种特定的上下文中的元素。
        “>”选择器 :选择一个元素的直接子元素。
        “+”选择器:同层相邻组合选择器,即与一个元素相邻的同一级的兄弟元素。
        “~”选择器:同层全体组合选择器,即与一个元素处于同一级别的所有元素。 
    各选择器的用法如下所示:
        article {
         ~ article { border-top: 1px dashed #ccc } 
         > section { background: #eee } 
         dl > { 
             dt { color: #333 } 
             dd { color: #555 }
         } 
         nav + & { margin-top: 0 }
    }
    //编译后
     article ~ article { border-top: 1px dashed #ccc }
     article > section{ background: #eee }
     article dl > dt { color: #333 }
     article dl > dd { color: #555 }
     nav + article { margin-top: 0 }
8、属性嵌套
    在sass中,除了选择器的嵌套之外,还可以进行属性的嵌套。 
    属性嵌套的规则是:将属性名从中划线的地方断开,在根属性的后边添加一个冒号:,紧跟一个{}块,然后把子属性的部分写在{}中,例子如下所示;
        nav {
         border: {
         style: solid;
         width: 1px;
         color: #ccc;
         }
     }
    //编译后
    nav { border-style: solid; border-width: 1px; border-color: #ccc;}  
属性和选择器的嵌套是非常大的特性,它不仅减少了代码的编写量,而且通过视觉上的缩进使自己编写的样式结构更加清晰,更易于阅读和开发。 
9、 导入sass文件
     在一个大型的项目中,必定会存在大量的css样式,将这所有的样式放在一起,看起来不美观,所以需要将这些样式拆分到多个文件中,sass可以实现这个功能,通过@import规则进行样式文件的引进。css也有这个规则,只有执行该规则的时候,浏览器才会去下载其他的css文件,这会导致页面在加载的时候会很慢。
    为@import命令专门编写的sass文件,不会生成对应的css文件,这样的sass文件被称为局部文件。
    sass局部文件一般是以下划线开头,当@import一个局部文件时,不需要将文件的下划线写入,只需要将下划线之后的名字导入即可。
     9.1 默认变量值
        sass中可以使用!default标签来实现这个目的。
    9.2 嵌套导入
         和原生的css不同,sass允许@import命令直接写在css规则内。例子如下:
         这是一个名为_blue-theme.scss的局部文件
         aside {

        background: blue; color: white;

     }
    把该文件导入到一个css规则内,如下所示:
     .blue-theme {@import "blue-theme"}
     //生成的结果跟你直接在.blue-theme选择器内写_blue-theme.scss文件的内容完全一样。
    .blue-theme { 
         aside { 
             background: blue; 
             color: #fff; 
         }
     }
   9.3 原生的css导入
     以下三种情况,在sass中使用@import命令,导入的时候,也会造成浏览器的额外下载。影响加载速度。
        1.被导入的文件名以.css结尾;
        2.被导入的文件名是一个URL地址(例如:http://www.sass.hk/css/css/css);
        3.被导入的文件名是css的url()值。
   9.4 静默注释
     sass提供了一种不同于css标准注释格式/*.....*/的注释语法,即静默注释3,其注释内容不会出现在生成的css文件中;sass有两种注释方法:
     1.  /....../ :这种注释方法的注释内容不会出现在相对应生成的css文件中
     2./*......*/: 这种注释方法的注释内容会出现在相对应生成的css文件中
    但是当注释出现在不该出现的地方,如css属性或选择器中,这些注释也会被抹掉,如下:
     body { 
         color /* 这块注释内容不会出现在生成的css中 */: #333;
         padding: 1; /* 这块注释内容也不会出现在生成的css中 */ 0
     }
  保持sass的条理性和可读性的最基本的三个方法:嵌套、导入、注释。

转载于:https://www.cnblogs.com/Shirley-1994/p/7048509.html

你可能感兴趣的文章
Codeforces 815 B Karen and Test 杨辉三角 组合数学
查看>>
3.8 采购协议管理
查看>>
[Hihocoder 1289] 403 Forbidden (微软2016校园招聘4月在线笔试)
查看>>
Revit二次开发之“取得所选元素的族名称”
查看>>
[04] 前端构建工具区别
查看>>
Python爬虫与一汽项目【三】爬取中国五矿集团采购平台
查看>>
敏捷过程
查看>>
Git基本操作
查看>>
hdu 4552
查看>>
[转] 不要被C++“自动生成”所蒙骗
查看>>
JavaScript 对象的遍历以及判断方法
查看>>
Object-C 入门介绍
查看>>
如何将github上源代码导入eclipse中
查看>>
js面试必考:this
查看>>
ASP-JSP-NET 清空IE缓存
查看>>
鼠标控制,扇形的大小
查看>>
Flash Builder 4.7 类模板编辑设置
查看>>
九个Console命令,让js调试更简单
查看>>
【Paddy】数据库监控系列(一) - 监控理念
查看>>
mixin
查看>>