说是教程还真是有点不敢当,只是将自己今天上手sass的流程给记录下来,给一些和我一样的小白菜一点参考而已,照着走一遍应该就会对sass有基本的认识了,也请大神们不吝赐教。

  很久之前同事做了一个关于sass的分享,由于一直有项目在手,没有时间去了解,以至于拖到了现在,写完移动端的总结之后就没有什么事干了,今天无聊了一上午,决定花4天时间,也就是过年前还没放假的这几天来研究sass(小白菜说研究好害羞呀~~),毕竟,我还是个从石器时代来的人,是该进化一点点了。

  今天在网上查了一下关于sass的资料,发现大多数教程直接就开始写sass的语法了,语法都快看烂了,可能当时脑子进水了,一直在纠结怎么建sass文件,或者说是,建好的sass文件应该放在哪里比较合适。只有我这种白菜才到处百度如何新建一个sass文件,不过我还是相信,只要有一个我,就会有千千万万个我,不知道的人应该还是有的,那么,就开始吧。

  1、sass是什么

  Sass 是Syntactically Awesome Stylesheete Sass的缩写,它是一种CSS预处理器(CSS 预处理器用一种专门的编程语言,进行 Web 页面样式设计,然后再编译成正常的 CSS 文件,以供项目使用。CSS 预处理器为 CSS 增加一些编程的特性,无需考虑浏览器的兼容性问题),它允许我们使用变量、简单的逻辑程序、函数等在编程语言中的一些基本特性,可以让我们的 CSS 更加简洁、适应性更强、可读性更佳,更易于代码的维护。

  Sass有两种后缀名文件:一种后缀名为sass,不使用大括号和分号;另一种就是我们这里使用的scss 文件,这种和我们平时写的 css 文件格式差不多,使用大括号和分号,官方建议使用后缀名为 scss 的文件,以避免 sass 后缀名的严格格式要求报错。

  2、sass安装

  很久以前我准备过要开始玩sass,所以环境很早就搭好了的,只是刚搭完就一直没空了,所以现在我就不按流程一步一步的贴出来了,只是提醒一下大家,sass是ruby语言写的,所以在安装sass之前需要先安装ruby,但是二者的语法没有任何关系,不懂ruby也可以的,我也不懂。附上sass安装链接:http://www.w3cplus.com/sassguide/install.html

  3、sass使用

  sass文件就是普通的文本文件,里面可以直接使用CSS语法和一些简单的编程,文件后缀名是.scss。

  1)新建文件。我这里html里面引用的是scss,在浏览器中打开也可以看到.scss文件,使用方式和CSS一样。

  

 <link rel="stylesheet" type="text/css" href="style.scss">

  2)配置。

  在命令行输入:sass --help,我们就能够查询到sass命令的常用配置选项。这里我们只介绍两种:

    --style NAME:Output style. Can be nested (default), compact, compressed, or expanded.表示解析后的CSS是什么格式,有4种取值。

    --watch Watch files or directories for changes.The location of the generated CSS can be set using a colon:

      sass --watch input.sass:output.css
      sass --watch input-dir:output-dir  
监听命令,可以监听文件或者是文件夹,一旦源文件有变动,就会自动生成编译后的版本。按Ctrl + C可以停止监听。

  3)编译。

  将.scss文件编译成css文件用在项目中,.scss文件编译的时候使用的是ruby的环境,容易出现问题,在命令行输入sass命令:sass style.scss style.css,不出意外的话会报错:

  

 此处附上解决办法:http://www.vcerror.com/?p=1835   找到ruby的安装目录,找到里面的sass模块:D:\soft\Ruby\install\Ruby23-x64\lib\ruby\gems\2.3.0\gems\sass-3.4.22\lib\sass,打开文件engine.rb,在所有的require模块后面加上一句Encoding.default_external = Encoding.find('utf-8')代码,重新编译.scss文件就不会报错了,重新编译后文件夹中多了以下文件:

编译生成的CSS文件如下:

@charset "UTF-8";
/*
*用CSS的标准注释
*开启sass之旅
*这是一段会被转译出来的注释
*/
body {
padding: 5px;
} div {
margin-top: 10px;
} /*# sourceMappingURL=style.css.map */

编译选项有四种:

  nested:嵌套缩进的css代码,它是默认值。(我们上面生成的CSS文件就是这种嵌套缩进的代码)

  expanded:没有缩进的、扩展的css代码。(这一种编译生成的代码风格是我最能够接受的,所以后面我会把它变成这种风格)

  compact:简洁格式的css代码。

    compressed:压缩后的css代码。(一般用于生产环境)

  准备工作就算是完了,假装算是入了个门吧

sass纯新手(一)的更多相关文章

  1. vue.js + ajax 数据加载(纯新手get)

    似懂非懂的感觉下撸了一个小demo .(只是单纯的引用vue.js的小demo.)在实践中进步吧! 首先肯定要先看vue的文档,并且知道超超基础的小知识!!!奉上代码: HTML 部分: js的引用: ...

  2. 16.Ubuntu LTS 16.04安装搜狗输入法全过程记录(纯新手)

    这是我第四次打算转到Ubuntu上了,应该不会像以前那样装个系统就拜拜了.打算先把C和Vim重新学起来,数据结构那本书看完写完,第二步是学python和算法导论,暂定如此. 昨天晚上系统装完以后想着要 ...

  3. python + lisp hy的新手注记1

    想在python里用lisp方言hy的目的: 1 用lisp去parse 包含 “数据+简单if控制流(代码.AST)”的配置文件,或者说用包含s-exp的.hy文件作为这类配置文件的实现(而不是用y ...

  4. 10步成为专业iOS开发者——新手向,从零起步

    想在移动开发大餐中分一杯羹,体验最火最炫的技术?小伙子,很有眼光嘛 毫无疑问,移动开发在目前和未来几年内都会盛极一时.无数开发职位虚位以待.各大公司都在寻找各种层次的程序员——新手级.入门级.中级.老 ...

  5. Laravel与Repository Pattern(仓库模式)

    为什么要学习Repository Pattern(仓库模式) Repository 模式主要思想是建立一个数据操作代理层,把controller里的数据操作剥离出来,这样做有几个好处: 把数据处理逻辑 ...

  6. 2016第七季极客大挑战Writeup

    第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{ ...

  7. StartCom 申请 SSL 证书及 Nginx HTTPS 支持配置全攻略

    来源:https://www.williamyao.com/index.php/archives/1397/ 前言 最近收到 StartCom 的邮件,数字证书即将过期,想到去年在 StartSSL ...

  8. 入门级的按键驱动——按键驱动笔记之poll机制-异步通知-同步互斥阻塞-定时器防抖

    文章对应视频的第12课,第5.6.7.8节. 在这之前还有查询方式的驱动编写,中断方式的驱动编写,这篇文章中暂时没有这些类容.但这篇文章是以这些为基础写的,前面的内容有空补上. 按键驱动——按下按键, ...

  9. ASP.NET 小白从零开始建站简易教程 (一)域名、虚拟主机、FTP上传文件

    只考虑性价比,纯新手实验无备案.跟着步骤走半小时即可收获独立的个人网站一枚! 我的实验站 http://www.bearlab.site/ ⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄ 目前总价花费86元(域名加虚 ...

随机推荐

  1. 小P的强力值

    小P的强力值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi在虚拟世界中有一只小宠物小P.小P有K种属性,每种属性的初始值为Ai.小Ho送给了小Hi若干颗药丸,每 ...

  2. Tinyproxy

    Tinyproxy Tinyproxy is a light-weight HTTP/HTTPS proxy daemon for POSIX operating systems. Designed ...

  3. java 读excel xlsx

    http://bbs.csdn.net/topics/380257685 import java.io.File; import java.io.IOException; import java.io ...

  4. Android Quick Tip - ADB over WiFi

    http://stuffandtech.blogspot.jp/2012/03/android-quick-tip-adb-over-wifi.html   MAR 26 Android Quick ...

  5. Lazy Load, 延迟加载图片的 jQuery 插件 - NeoEase

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  6. mysql之SQL---存储过程

    1.存储过程简介  我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用 ...

  7. OPENCV条形码检测与识别

    条形码是当前超市和部分工厂使用比较普遍的物品,产品标识技术,使用摄像头检测一张图片的条形码包含有两个步骤,第一是定位条形码的位置,定位之后剪切出条形码,并且识别出条形码对应的字符串,然后就可以调用网络 ...

  8. linux 驱动入门6

    看/sys目录经常看到bus device driver class. 这也是网上大量说的驱动驱动模型.这些的关系得熟悉得明白吧.是的.今天我先不整他们的关系.先逐个击破,然后再统一来理清楚他们之间的 ...

  9. jstl-按照html的形式输出至页面

    一.按照html的形式输出至页面 <c:out value="${xxx}" default="默认值" escapeXml="false&qu ...

  10. WINDOWS下搭建SVN服务器端的步骤分享(Subversion)

    1.获取svn程序 2.安装 Subversion(以下简称SVN)的服务器端和客户端.下载下来的服务器端是个 zip压缩包,直接解压缩即可,比如我解压到 E:\subversion .客户端安装文件 ...