Sass简介

Sass是CSS的预处理语言;提供了变量定义、函数定义、函数调用、类继承、嵌套(CSS层级关系)及代码引入功能。

Sass安装指南

MAC

OS X 10.10.3
 
终端
 -> gem -v
2.0. -> sudo gem install sass -> sass -v
Sass 3.4. (Selective Steve)

WIN

Windows 7 x64

需要安装ruby,然后就可以使用gem了。ruby传送门:http://rubyinstaller.org/

命令行

 -> gem -v
2.4. -> gem sources -l
*** CURRENT SOURCES ***
https://ruby.taobao.org/ -> gem install sass

PS:

1. 强烈建议将gem sources改为https://ruby.taobao.org/;改的方法参考后文“MAC可能遇到的错误”中的命令

2. 若添加https://ruby.taobao.org/后,仍然出错,使用gem sources -l命令查看当前所有源,使用gem sources --remove将默认源删除

MAC可能遇到的错误

sudo gem install sass时出现错误
1. ERROR:  Could not find a valid gem 'sass' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - Errno::ETIMEDOUT: Operation timed out - connect(2) (https://rubygems.org/latest_specs.4.8.gz)
 
原因:被和谐了
解决:更改ruby源
 
 -> gem sources
https://rubygems.org/
-> gem sources --remove https://rubygems.org/
-> gem sources --a https://ruby.taobao.org/
 
2. ERROR:  While executing gem ... (NoMethodError) undefined method `size' for nil:NilClass
 
原因:缓存问题
解决:clear gem cache
 
 -> cd /Library/Ruby/Gems/2.0./cache
-> sudo rm sass-3.4..gem

Bootstrap with Sass安装指南

MAC

 -> gem install bootstrap-sass -v 3.3.2.0
-> cd /Library/Ruby/Gems/2.0./gems/bootstrap-sass-3.3.2.0/assets/stylesheets

WIN

 gem install bootstrap-sass -v 3.3.2.0
cd C:\Ruby22-x64\lib\ruby\gems\2.2.\gems\bootstrap-sass-3.3.2.0\assets\stylesheets

PS:Ruby22-x64是Ruby安装文件夹

bootstrap with sass相关文件在stylesheets文件夹下,拷贝到自己项目下使用即可;如下图所示。PS:我把stylesheets改名成了bootstrapSass :)

Sass使用指南

<最重要的事项开头说>Sass编译输出css
 -> sass sample.scss output.css

如开篇所说Sass是CSS的扩展语言,其提供了变量定义、函数定义、函数调用、类继承、嵌套(CSS层级关系)及代码引入功能,下面逐一介绍其功能用法。

变量定义:$

sample.scss

 $border-radius-base: 4px !default;

函数定义:@mixin

sample.scss

 @mixin border-left-radius($radius) {
border-bottom-left-radius: $radius;
border-top-left-radius: $radius;
}

函数调用:@include

sample.scss

 .front-btn-group {
@include border-left-radius(0);
}

output.css

 .front-btn-group {
border-bottom-left-radius:;
border-top-left-radius:;
}

类继承:@extend

sample.scss

 .message {
border: 1px solid #ccc;
padding: 10px;
color: #333;
}
.success {
@extend .message;
border-color: green;
}

output.css

 .message, .success {
border: 1px solid #ccc;
padding: 10px;
color: #333; } .success {
border-color: green;
}

PS:Sass3.4.13(截止目前最新版)在media query中不能使用@extend

嵌套

sample.scss

 .front-btn-group {
.btn {
border: 1px solid #ccc;
}
}

output.css

 .front-btn-group .btn {
border: 1px solid #ccc;
}

&引用父类

sample.scss

 .front-btn-group .btn:first-child {
margin-left:;
&:not(:last-child) {
@include border-right-radius(0);
}
}

output.css

 .front-btn-group .btn:first-child {
margin-left:;
}
.front-btn-group .btn:first-child:not(:last-child) {
border-bottom-right-radius:;
border-top-right-radius:;
}

代码引入:@import

sample.scss

 @import "bootstrapSass/bootstrap/mixins/border-radius";
.front-btn-group {
@include border-left-radius(0);
}
output.css
 .front-btn-group {
border-bottom-left-radius:;
border-top-left-radius:;
}
PS:
1. border-left-radius定义在_border-radius.scss文件中
2. @import引入能产生css代码的scss文件,则被引入scss文件所产生的css也会被引入到当前scss生成的css文件中
3. 至于不能产生css代码的scss文件,参考bootstrap,如纯$变量定义文件:_variables.scss,如纯mixins定义文件:_border-radius.scss
 

结语

Sass入门相对简单,官方短短几屏介绍,已将Sass的功能全数道来,可能是因为CSS语言本身简单吧
 

资料

http://sass-lang.com/:Sass main page
http://sass-lang.com/guide:Sass official guide
http://www.ruanyifeng.com/blog/2012/06/sass.html : 阮一峰 SASS用法指南

FE: Sass and Bootstrap 3 with Sass的更多相关文章

  1. CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(1)设定背景图

    技术的新发展,除计算机可以接入互联网之外,平板电脑.智能手机.智能电视等其他设备均可访问互联网.在多设备时代,构建多屏体验也不是听说的那么难. 但是这也增加了学习CSS的难度?不知道如何上手,只懂一点 ...

  2. 只会CSS还不够,LESS、SASS、BootStrap、Foundation一网打尽!

    有些人想学CSS,不知如何下手:有些人已经学会CSS的各种属性,却不知如何运用:有些人会平面设计,不知道如何与网页设计结合:有些人会HTML,就是学不会CSS.试问自己,图中的技术你都会了吗? 别总是 ...

  3. sass+compass+bootstrap三剑合璧高效开发记录

    1. 先搭建环境,下载node.js,rubyinstaller,安装, 安装rubyinstaller时,要选上include system path,这样就会自动将node.js执行添加到wind ...

  4. Sass学习之路:Sass、Compass安装与命令行

    导言 CSS不是一门真正意义上的编程语言,很多编程语言理所当然的特性(比如变量),都不被支持.同时再开发模块化的web项目的时候,也要避免相互干扰.为了弥补CSS的这些不足,就产生了CSS预处理器,S ...

  5. Sass学习之路(3)——Sass编译

    Sass的编译也是在我们使用Sass的时候必须要经过的一个步骤,因为".sass"和".scss"文件并不能直接使用<link>标签引用,最终其实还 ...

  6. Sass学习之路(1)——Sass简介

    Sass是CSS的一种预处理器语言,类似的语言还有Less,Stylus等. 那么什么是CSS预处理器? CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些 ...

  7. BEM,SASS,LESS,bootstrap:如何有效地将这些方法,工具和框架聪明地整合?

    https://medium.com/@andersonorui_/bem-sass-and-bootstrap-9f89dc07d20f Bootstrap是一个“HTML,CSS和Javascri ...

  8. (转)在 vue-cli 脚手架中引用 jQuery、bootstrap 以及使用 sass、less 编写 css [vue-cli配置入门]

    写在前面: 本文是vue-手摸手教你使用vue-cli脚手架-详细步骤图文解析之后,又一篇关于vue-cli脚手架配置相关的文章,因为有些文章步骤不够清晰,当时我引入JQuery.bootstrap的 ...

  9. 前端学习(八)sass和bootstrap(笔记)

    less sass 和less基本上70%差不多(书写方式不一样) sass功能更多一点 1.定义一个变量 $b:blue; div{width:100px;height:100px; backgro ...

随机推荐

  1. 高性能MySql进化论(一):数据类型的优化_上

    在数据库的性能调优的过程中会涉及到很多的知识,包括字段的属性设置是否合适,索引的建立是否恰当,表结构涉及是否合理,数据库/操作系统 的设置是否正确…..其中每个topic可能都是一个领域. 在我看来, ...

  2. 【网络流#4】UVA 753 最大流

    最近开始刷网络流的题目了,先从紫书上的开始,这道题是P374上的,嘛,总之这道题最终还是参考了一下紫书. 中间是用了STL中map将字符串映射成编号,使用编号总比是用字符串简单的多. 超级源点S与各个 ...

  3. Asp.net中用户自定义控件 ascx的使用

    使用ascx目的就是为了提高某部分功能的重复利用,我简单通过源代码说一下对它的参数的输入和数出. 我们以省市区三级连动为例子. vs2005下ascx页面的代码: <table width=&q ...

  4. 母函数&&排列(模板)

    #include <iostream> #include <algorithm> using namespace std; int main() { int n,i; int ...

  5. java图片缩放

    package com.rubekid.springmvc.utils; import java.awt.AlphaComposite; import java.awt.Graphics2D; imp ...

  6. 一条insert语句批量插入多条记录

    一条insert语句批量插入多条记录 常见的insert语句,向数据库中,一条语句只能插入一条数据: insert into persons (id_p, lastname , firstName,  ...

  7. (转)js获取url参数值

    明天有空编辑下 今天做项目遇到js取得url地址问号后面的参数,找了下面的,用着非常好,项目是选项卡样式的,也就是一点击二级分类,底下的同样名字的背景变红(选项卡倍选中) http://www.cnb ...

  8. jQuery验证框架 .

          目录视图 摘要视图 订阅 “程序人生”中国软件开发者职业生涯调查     CSDN社区“三八节”特别活动      开发者职业生涯调查之未来 jQuery验证框架 分类: JQuery 2 ...

  9. ViewPager Indicator的使用方法

    原文:http://my.oschina.net/u/1403288/blog/208402 项目源码:https://github.com/wangjing0311/ViewPagerIndicat ...

  10. linux RedHat 5 更新vim.

    概述: 想装 ctags,装不上.看到老外有篇日志,是在vi 7.2版本上运行.怕是vi版本的原因,于是想升级,网上升级的方法写得少,有的写的太无语了,只有他自己看得懂.这里,简单说下.搞半天了,终于 ...