sass纯新手(一)
说是教程还真是有点不敢当,只是将自己今天上手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纯新手(一)的更多相关文章
- vue.js + ajax 数据加载(纯新手get)
似懂非懂的感觉下撸了一个小demo .(只是单纯的引用vue.js的小demo.)在实践中进步吧! 首先肯定要先看vue的文档,并且知道超超基础的小知识!!!奉上代码: HTML 部分: js的引用: ...
- 16.Ubuntu LTS 16.04安装搜狗输入法全过程记录(纯新手)
这是我第四次打算转到Ubuntu上了,应该不会像以前那样装个系统就拜拜了.打算先把C和Vim重新学起来,数据结构那本书看完写完,第二步是学python和算法导论,暂定如此. 昨天晚上系统装完以后想着要 ...
- python + lisp hy的新手注记1
想在python里用lisp方言hy的目的: 1 用lisp去parse 包含 “数据+简单if控制流(代码.AST)”的配置文件,或者说用包含s-exp的.hy文件作为这类配置文件的实现(而不是用y ...
- 10步成为专业iOS开发者——新手向,从零起步
想在移动开发大餐中分一杯羹,体验最火最炫的技术?小伙子,很有眼光嘛 毫无疑问,移动开发在目前和未来几年内都会盛极一时.无数开发职位虚位以待.各大公司都在寻找各种层次的程序员——新手级.入门级.中级.老 ...
- Laravel与Repository Pattern(仓库模式)
为什么要学习Repository Pattern(仓库模式) Repository 模式主要思想是建立一个数据操作代理层,把controller里的数据操作剥离出来,这样做有几个好处: 把数据处理逻辑 ...
- 2016第七季极客大挑战Writeup
第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{ ...
- StartCom 申请 SSL 证书及 Nginx HTTPS 支持配置全攻略
来源:https://www.williamyao.com/index.php/archives/1397/ 前言 最近收到 StartCom 的邮件,数字证书即将过期,想到去年在 StartSSL ...
- 入门级的按键驱动——按键驱动笔记之poll机制-异步通知-同步互斥阻塞-定时器防抖
文章对应视频的第12课,第5.6.7.8节. 在这之前还有查询方式的驱动编写,中断方式的驱动编写,这篇文章中暂时没有这些类容.但这篇文章是以这些为基础写的,前面的内容有空补上. 按键驱动——按下按键, ...
- ASP.NET 小白从零开始建站简易教程 (一)域名、虚拟主机、FTP上传文件
只考虑性价比,纯新手实验无备案.跟着步骤走半小时即可收获独立的个人网站一枚! 我的实验站 http://www.bearlab.site/ ⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄ 目前总价花费86元(域名加虚 ...
随机推荐
- PAT (Advanced Level) 1023. Have Fun with Numbers (20)
手动模拟一下高精度加法. #include<iostream> #include<cstring> #include<cmath> #include<algo ...
- 操作IFRAME及元素
内容里有两个ifame <iframe id="leftiframe"...</iframe> <iframe id="mainiframe..& ...
- PHP json不转义
json_encode($result, JSON_UNESCAPED_UNICODE);
- tempnam问题
tempnam()函数创建一个具有唯一文件名的临时文件 若成功,则返回新的临时文件名,若失败,则返回false 失败原因 c:\windows\temp文件夹不具备读写权限(即 不是超级管理员)
- 关于bool和BOOL的区别
1.类型不同: BOOL是int类型,bool是布尔类型 2.长度不同: BOOL长度是其环境来定,一般是4个字节,因为其是int类型;bool长度为一个字节 3.取值不同: BOOL取值是FALSE ...
- golang中container/list包源码分析
golang源码包中container/list实际上是一个双向链表 提供链表的一些基本操作,下面就结合定义和接口进行下说明 1. 定义 // Element is an element of a l ...
- 转载:ECMAScript 6简介
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发 ...
- MySql存储过程—7、游标(Cursor)
|字号 订阅 1.游标的作用及属性 游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作:游标有下面这些属性: a.游标是只读的,也就是不能更新它: b.游标是不能滚动的,也就是只能 ...
- minor gc 和 full gc
JAVA中关于GC的分析中,需要搞清楚,GC线程在什么时候,对什么东西,做了什么操作. 1-在什么时候 首先需要知道,GC分为minor GC和full GC,JAVA内存分为新生代和老年代,新生代中 ...
- php中DateTime的format格式以及 TtoDatetime函数
Definition and Usage The date() function formats a local time/date. Syntaxdate(format,timestamp)Para ...