15-Sass入门

#Sass简介

大家都知道,js 中可以自定义发量,css 仅仅是一个标记语言,不是编程语言,因此不可以自定义发量、不可以引用等等。

面对这些问题,我们现在来引入 Sass,简单的说,他是 css 的升级版,可以自定义发量,可以有 if 语句,还可以嵌套等等,很神奇吧!那下面我们就来介绍返个神奇的 Sass。

Sass比Less的功能更强大,也更复杂。

#Sass 的定义

Sass:英文是 Syntactically Awesome Stylesheets Sass。最早由 Hampton Catlin 开发和设计。 一种帮助你简化 CSS 工作流程的方式,帮助你更容易维护和开发 CSS 内容。

官网是:https://sass-lang.com/

Sass 是这个世界上最成熟、稳定和强大的专业级 CSS 扩展语言。

Sass专注的是怎样创建优雅的样式表,而不是内容。

#Sass、Compass与CSS

关系:

  • Less/Sass是语法、Compass是框架、CSS是目标。

Sass&Compass的好处:

  • 写出更优秀的CSS。

  • 解决CSS编写过程中的痛点问题,比如精灵图合图、属性的浏览器前缀处理等。

  • 有效组织样式、图片、字体等项目元素。

受众群体:

  • 重构的同学,写很多CSS,不知如何自动化。

  • 希望在项目周期内更好地组织项目内容。

#Sass的安装

sass引擎是用Ruby语言开发的(但是两者的语法没有关系),因此在安装 Sass 前,需要先安装Ruby(mac下自带Ruby无需再安装Ruby)。

下面来讲一下 Windows 下的安装Sass的步骤。

#第一步:安装Ruby(windows环境)

下载地址:http://rubyinstaller.org/downloads/

貌似网络很慢,不一定能下载成功~

安装时,记得勾选“环境变量”:

安装完ruby之后,在命令行中输入ruby -v,查看ruby的的版本:

#关于Mac下的Ruby

刚刚说了,Mac下自带Ruby,但是版本肯定很老:

有的时候,我们可能需要使用特定版本的ruby,或者在不同的ruby版本之间进行切换,所以,大家可以尝试安装rvm,它是ruby的版本管理工具。官网是:https://rvm.io

#第二步:安装 Sass

安装完ruby之后,在开始菜单中,找到刚才我们安装的ruby,打开Start Command Prompt with Ruby。输入gem install sass安装Sass。

PS:Ruby 是使用 gem 来管理它的各种包(比如Sass)。我们安装好ruby之后,gem会自动安装上;类似于,我们安装完node之后,npm也自动安装好了。

但是,由于访问网络受限,我们可以先切换到淘宝的镜像,再安装Sass。步骤如下:

(1)移除默认的镜像,添加淘宝的镜像:

	gem sources --remove https://rubygems.org/

	gem sources -a https://ruby.taobao.org/  //注意:如果你系统不支持https,请将淘宝源更换成:gem sources -a http://gems.ruby-china.org
 

PS:我测试了一下,Win 7 不支持https,Mac支持https。

(2)查看当前使用的是哪个镜像:

	gem sources -l
 

(3)安装sass:

紧接着,输入如下命令安装Sass:

	gem install sass        // 如果mac下输入这个命令时没有权限,则需要在前面加上 sudo
 

系统会自动安装上最新版本的Sass。

查看sass版本的命令为:

	sass -v
 

升级sass版本的命令为:

	gem update sass
 

你也可以运行帮助命令行来查看你需要的命令:

	sass -h
 

参考链接:https://www.w3cplus.com/sassguide/install.html

#Compass 简介和安装

安装完sass之后,我们在main.scss中写一些代码,然后输入如下命令,就可以将scss文件转化为css文件

	sass main.scss main.css
 

然而,真正的项目开发中,我们不一定是直接使用 sass 命令,而是使用 Compass。

#Compass 简介

官网是:http://compass-style.org/

Compass 是开源的CSS书写框架。

#Compass 安装

输入如下命令安装 Compass:

	gem isntall compass
 

输入如下命令查看版本:

	compass -v
 

compass可以直接用来搭建前端项目的样式部分,但并不是常用的方法。

#Compass的简单使用

通过 Compass 创建工程目录:

cd workspace

compass create CompassDemo
 

文件结构如下:

  • /sass

    • ie.scss
    • print.scss
    • screen.scss
  • /stylesheets

    • ie.css
    • print.css
    • screen.css
  • config.rb

为了能够让文件实时编译,我们可以通过 copass watch 监听sass文件的变化:

	cd CompassDemo

	compass watch
 

当.scss文件改动时,会自动生成对应的.css文件。

#Sass的语法

#两种后缀名(两种语法)

sass 有两种后缀名文件:

(1).sass:对空格敏感。不使用大括号和分号,所以每个属性之间是通过换行来分隔。

比如:

h1
color: #000
background: #fff
 

这种语法是类ruby的语法,和CSS的语法相比,相差较大。所以,在3.0版本中就引入了.scss的语法。

(2).scss:是css语法的超集,可以使用大括号和分号。

比如:

h1 {
color: #000;
background: #fff;
}
 

注意:一个项目中可以混合使用两种语法,但是一个文件中不能同时使用两种语法。

两种格式之间的转换:

我们在工程目录下新建main.scss,输入如下代码:

*{
margin: 0;
padding: 0;
}
 

然后输入如下命令,就可以将上面的main.scss转化为main.sass

	sass-convert main.scss main.sass
 

打开生成的main.sass,内容如下:

*
margin: 0
padding: 0
 

#变量语法

Sass 是通过$符号来声明变量。

(1)我们新建一个文件_variables.scss,这个文件专门用来存放变量,然后在其他的文件中引入_variables.scss即可。

因为这个文件只需要存储变量,并不需要它编译出对应的 css 文件,所以我们给文件名的前面加了下划线,意思是声明为局部文件。

我们在这个文件中,声明两个字体变量:

$font1: Braggadocio, Arial, Verdana, Helvetica, sans-serif;

$font2: Arial, Verdana, Helvetica, sans-serif;
 

(2)新建文件main.scss,在里面引入步骤(1)中的变量文件:

@import "variables";    // 引入变量文件

.div1{
font-family: $font1;
} .div2{
font-family: $font2;
}
 

基于 Sass 的既定规则:

  • 没有文件后缀名时,Sass 会自动添加 .scss 或者 .sass 的后缀(具体要看已经存在哪个后缀的文件)。

  • 同一目录下,局部文件和非局部文件不能重名。

对应生成的main.css文件如下:

main.css

/* line 9, ../sass/main.scss */
.div1 {
font-family: Braggadocio, Arial, Verdana, Helvetica, sans-serif;
} /* line 13, ../sass/main.scss */
.div2 {
font-family: Arial, Verdana, Helvetica, sans-serif;
}
 

#注释语法

单行注释:

//我是单行注释
 

块级注释:

/*
我是块级注释
哈哈
*/
 

二者的区别是:单行注释不会出现在自动生成的css文件中。

css 15-Sass入门的更多相关文章

  1. CSS进阶之SASS入门指南

    CSS进阶之SASS入门指南         随着跟着公司学习项目的前端的推进,越来越对好奇了许久的SASS垂涎欲滴,哈哈,可能这个词使用不当,没有关系,就是对SASS有一股神秘的爱!好了,闲话不多说 ...

  2. Sass入门及知识点整理

    Sass 快速入门 | SASS 中文网 文档链接:https://www.sasscss.com/getting-started/ 前言 之前整理了一篇关于Less的,现在就来整理一下关于Sass的 ...

  3. 【CSS】Sass理解

    原文在 https://github.com/zhongxia245/blog , 欢迎 star! Sass理解 时间:2016-09-24 22:56:12 作者:zhongxia 这里就不讲解S ...

  4. Sass入门指南

    转自:http://www.imooc.com/article/1413 css预处理器已经算不上一个新鲜的词了,当前比较有代表性的css预处理器有sass.less.stylus.关于三者选择问题一 ...

  5. sass入门

    SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. SASS 官网介绍: sass is the most mature(成熟的),st ...

  6. inuit.css – 基于 Sass 的强大,可扩展的 CSS 框架

    inuit.css 是一个强大的,可扩展的 CSS 框架,另外还是基于 Sass,面向对象的框架.inuit.css 是建立在 BEM 风格的命名约定,非常适合于想要专注于创意而不是代码的设计师以及喜 ...

  7. 前端编码规范(4)—— CSS 和 Sass (SCSS) 规范

    CSS and Sass (SCSS) style rules ID and class naming ID和class(类)名总是使用可以反应元素目的和用途的名称,或其他通用名称.代替表象和晦涩难懂 ...

  8. Sass入门:第三章

    1.声明变量 Sass声明变量以美元符号"$"开头.例如: $width : 300px; 上面的例子中,Sass的变量包括三个部分: (1)声明变量的符号"$" ...

  9. sass入门篇

    CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行编码工作. 通俗的说,“CSS ...

  10. sass入门(一)

    一].sass入门安装sass安装koala // sass中可以自定义变量 $fontStack: Microsoft Yahei; $primaryColor: #333; body { font ...

随机推荐

  1. css中渐变的分割线和自定义滚动条样式

    css中渐变的分隔线: <div style="background:linear-gradient(to left,#efefef,#b6b6b6,#efefef);height:1 ...

  2. 面试官:小伙子,你给我说一下Java中什么情况会导致内存泄漏呢?

    概念 内存泄露:指程序中动态分配内存给一些临时对象,但对象不会被GC回收,它始终占用内存,被分配的对象可达但已无用.即无用对象持续占有内存或无用对象的内存得不到及时释放,从而造成的内存空间浪费. 可达 ...

  3. U盘数据丢失怎么办,还能恢复吗

    有时候在用U盘的时候会出现数据丢失或者U盘无法打开的问题,检查过之后,发现U盘格式变成了RAW,这是怎么回事?遇到这种情况该怎么解决呢? 首先来看看造成u盘格式变为RAW的主要原因: 1.非正常退出u ...

  4. jsp自定义错误页

    1.在可能出错页面的Page标签上errorPage="/Error.jsp"指定错误页 2.Error,jsp的page标签中isErrorPage="true&quo ...

  5. JAVA 中的Optional (臭名昭著的空指针异常(NullPointerException))

    从 Java 8 引入的一个很有趣的特性是 Optional  类.Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) -- 每个 Java 程序员都 ...

  6. Win搭建JAVA环境

    一:下载JDK 下载链接:https://www.oracle.com/java/technologies/javase-downloads.html 选择你的系统环境进行下载 二:安装JDK 直接运 ...

  7. Linux 学习笔记02丨Linux 概述、常用快捷键、apt命令

    Chapter 1. Linux 概述 Linux 是一种自由和开放源码的 Unix 操作系统, 是一个基于 POSIX 和 UNIX 的多用户.多任务.支持多线程和多CPU的操作系统.只要遵循 GN ...

  8. CSS3 学习笔记(中)

    七.文档流 文档流(normal flow)--网页的基础(最底下的一层),我们所创建的元素默认都是在文档流中进行排列. 对于元素有两个状态:在文档流 或 脱离文档流. 元素在文档流的特点: 块元素: ...

  9. java导出excel并且压缩成zip上传到oss,并下载,使用字节流去存储,不用文件流保存文件到本地

    最近项目上要求实现导出excel并根据条数做分割,然后将分割后的多个excel打包成压缩包上传到oss服务器上,然后提供下载方法,具体代码如下:这里只展示部分代码,获取数据的代码就不展示了 ByteA ...

  10. badboy下载

    最近新接触了badboy软件,以下是百度网盘链接,有需要可以下载. 链接:https://pan.baidu.com/s/1O4oIhx-twcaMA_fDzRQPHg提取码:7i44 二维码: