FE: Sass and Bootstrap 3 with Sass

Sass简介

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

Sass安装指南

环境

OS X 10.10.3

终端

1 -> gem -v
2    2.0.14
3
4 -> sudo gem install sass
5
6 -> sass -v
7    Sass 3.4.13 (Selective Steve)

可能遇到的错误

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源

1 -> gem sources
2    https://rubygems.org/
3 -> gem sources --remove https://rubygems.org/
4 -> gem sources --a https://ruby.taobao.org/

2. ERROR:  While executing gem ... (NoMethodError) undefined method `size‘ for nil:NilClass

原因:缓存问题

解决:clear gem cache

1 -> cd /Library/Ruby/Gems/2.0.0/cache
2 -> sudo rm sass-3.4.13.gem

Bootstrap with Sass安装指南

1 -> gem install bootstrap-sass -v 3.3.2.0
2 -> cd /Library/Ruby/Gems/2.0.0/gems/bootstrap-sass-3.3.2.0/assets/stylesheets

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

Sass使用指南

<最重要的事项开头说>Sass编译输出css

1 -> sass sample.scss output.css

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

变量定义:$

sample.scss

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

函数定义:@mixin

sample.scss

1 @mixin border-left-radius($radius) {
2   border-bottom-left-radius: $radius;
3      border-top-left-radius: $radius;
4 }

函数调用:@include

sample.scss

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

output.css

1 .front-btn-group {
2   border-bottom-left-radius: 0;
3   border-top-left-radius: 0;
4 }

类继承:@extend

sample.scss

1 .message {
2   border: 1px solid #ccc;
3   padding: 10px;
4   color: #333;
5 }
6 .success {
7   @extend .message;
8   border-color: green;
9 }

output.css

1 .message, .success {
2   border: 1px solid #ccc;
3   padding: 10px;
4   color: #333; }
5
6 .success {
7   border-color: green;
8 }

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

嵌套

sample.scss

1 .front-btn-group {
2   .btn {
3       border: 1px solid #ccc;
4   }
5 }

output.css

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

&引用父类

sample.scss

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

output.css

1 .front-btn-group .btn:first-child {
2   margin-left: 0;
3 }
4 .front-btn-group .btn:first-child:not(:last-child) {
5     border-bottom-right-radius: 0;
6     border-top-right-radius: 0;
7 }

代码引入:@import

sample.scss

1 @import "bootstrapSass/bootstrap/mixins/border-radius";
2 .front-btn-group {
3   @include border-left-radius(0);
4 }

output.css

1 .front-btn-group {
2   border-bottom-left-radius: 0;
3   border-top-left-radius: 0;
4 }

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用法指南

http://www.hongkiat.com/blog/bootstrap-and-sass/ : Bootstrap 3 With Sass

时间: 2024-08-30 01:15:27

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

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

技术的新发展,除计算机可以接入互联网之外,平板电脑.智能手机.智能电视等其他设备均可访问互联网.在多设备时代,构建多屏体验也不是听说的那么难. 但是这也增加了学习CSS的难度?不知道如何上手,只懂一点基础的CSS语法,在移动互联时代,难道我们就这样落伍了??好好学习吧,看完<CSS高效开发实战:CSS 3.LESS.SASS.Bootstrap.Foundation>,给自己的未来打气! 5.1  设定背景图的大小 在CSS 3出现之前,背景图片的尺寸是由图片的实际尺寸决定的.如果同样的图片要

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

有些人想学CSS,不知如何下手:有些人已经学会CSS的各种属性,却不知如何运用:有些人会平面设计,不知道如何与网页设计结合:有些人会HTML,就是学不会CSS.试问自己,图中的技术你都会了吗? 别总是怨天尤人了,<CSS高效开发实战-CSS 3.LESS.SASS.Bootstrap.Foundation>书写作的目的是要确保CSS不会成为开发过程或网站性能的瓶颈,确保读者可以运用一些工具.框架.预处理来提升开发效率和节约人力成本,确保所讲解的内容读者都能活学活用. 曾就职于CSDN和淘宝的一

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

Sass的编译也是在我们使用Sass的时候必须要经过的一个步骤,因为".sass"和".scss"文件并不能直接使用<link>标签引用,最终其实还是要将他们转换成CSS文件来在项目中使用. 所以要让web页面真正使用到Sass缩写的东西,编译这个过程是必须要有的. 这里会提到3种编译方法: 1.命令行编译 顾名思义,就是通过电脑里的终端(命令行工具)通过指令来编译Sass文件(个人觉得,这种方式比较直观,但是敲命令有点麻烦) (1)单文件编译: sas

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

Sass是CSS的一种预处理器语言,类似的语言还有Less,Stylus等. 那么什么是CSS预处理器? CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行编码工作. 换言之就是说,CSS预处理器是一种专门的变成语言,在通过这种语言编写之后,再将其编译成正常的CSS文件. CSS预处理器给CSS增加了编程的特性,例如可以使用变量.函数.以及逻辑. CSS预处理器的优势: 可以让你

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

导言 CSS不是一门真正意义上的编程语言,很多编程语言理所当然的特性(比如变量),都不被支持.同时再开发模块化的web项目的时候,也要避免相互干扰.为了弥补CSS的这些不足,就产生了CSS预处理器,Sass则是其中的佼佼者. 什么是Sass Sass是最成熟.稳定.强大.专业的CSS扩展语言(官方解释).直白点,Sass就是一个非常好用的CSS预处理器,为css引入部分编程语言的特性. Sass在现阶段,有两种编码的语法,一个是兼容CSS语法的Scss格式文件,一个是Haml.Ruby类似语法的

Vue 融入flexible.js scss(sass)文件 添加scss文件 sass

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "He

CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(5)使用放射渐变制作光影效果

阴影效果通常用来表现光线投射在物体上的感觉,如果想制作一个如图5.19所示的文字光影效果,就可以使用背景的线性渐变进行构建. 图5.19可以看到有类似光束照射文字的效果,很好地突出了文字.这实现起来很简单,只需要对文字居中,对背景元素设置从中心发散的放射渐变即可,代码如下: // HTML代码 <div class="box">赞</div> // CSS代码: .box{ width: 200px; height: 200px; font-size: 80px

CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(2)CSS3利用图层叠加实现多背景

CSS 3允许设置多个背景图片,每个背景图片占一层,层的上下按照在CSS中书写的顺序来定,最先写的背景在最上层,每层图片定义使用英文逗号隔开. 例如下面的代码: background:url(http://dotnet.aspx.cc/Book/Images/CSS1_s.jpg) 0 0 no-repeat, url(http://dotnet.aspx.cc/Book/Images/CSS2_s.jpg) 200px 0 no-repeat, url("http://dotnet.aspx.

CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(4)构造尺寸更灵活的背景

相比传统的图片背景来说,使用CSS构造背景色不仅可以降低网络传输的开销,更由于其尺寸的可控性受到开发者的青睐. 如设计师设计了一张背景图片作为标题背景,如图5.18所示.对于用电脑浏览网页的用户来说,标题基本不存在折行现象,布局也基本是固定宽度的,因此直接使用设计师给出的背景图即可.但是这个页面主要是在手机上显示,标题根据长度不同可能占1行,也可能占3行,如果采用图片就必须根据不同的情况放不同的背景图,实现起来很复杂. 图5.18  设计师给出的背景 好在这张背景图实际是从左到右由深紫蓝色渐变至