Sass和Compass设计师指南
注:配合查看:Sass
为什么使用Sass和Compass?
.color {
color: $green;
color: rgba($green, .9);
}
.rounded {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
-o-border-radius: 5px;
border-radius: 5px;
}
改写:
.rounded {
@include border-radius(5px);
}
Compass,第一个基于Sass的框架
安装
使用
创建新的compass工程
compass create [project-name]


编译输出风格
使用相对资源路径
relative_assets = true
background-image: url('../img/img.jpg');
可以改为:
background-image: image-url('img.jpg');
注:使用的是image-url
模块化开发
借助@import
注:嵌套开发时,尽量不超过三层
@extend可扩展现有代码
只用于扩展的代码,可以使用占位符选择器
混合宏
@mixin bs($bs-type) {
-webkit-box-sizing: $bs-type;
-moz-box-sizing: $bs-type;
box-sizing: $bs-type;
}
调用混合宏使用@include命令
* {
@include bs(border-box);
}
还可以为混合宏定义默认值
@mixin bs($bs-type: border-box) {
// do something
}
颜色
compass的clearfix
%clearfix {
@include clearfix;
}
background-color: adjust-hue($color,180deg);
adjust-hue接收两个参数,一个颜色参数,一个0-360度的作用范围
background-color: fade-in($color, .3);
background-color: opacify($color, .3);
rgba($color, .9);
混合函数(mix)
background-color: mix($color1, $color2, 50%);
background-color: adjust-color($color, $hue: 40); 将取得的颜色色调调高40度
background-color: adjust-color($color, $hue: 20, $lightness: 40%); 将取得的颜色色调调高20度,亮度调高40%
background-color: adjust-color($color, $red: 20); 将取得的颜色中红色值调到20
background-color: adjust-color($color, $lightness: -20%);
background-color: scale-color($color, $lightness: -20%);
调色函数取得红色值,然后将其亮度降低20%。
background-color: shade($color, 60%);
background-color: tint($color, 60%);
Compass中的CSS3、Image Sprites等功能
文本阴影
$default-text-shadow-color: darken($color, 20%);
$default-text-shadow-blur: 0px;
$default-text-shadow-v-offset: 4px;
$default-text-shadow-h-offset: 4px;
需要使用多个阴影时,只需要使用逗号隔开每个阴影值
圆角
盒子阴影
$default-box-shadow-color: lighten($color, 50%);
$default-box-shadow-h-offset: 1px;
$default-box-shadow-v-offset: 1px;
$default-box-shadow-blur: 2px;
$default-box-shadow-spread: false;
$default-box-shadow-inset: false;
背景线性渐变语法
@include background(linear-gradient(to-direction, first-color first-color-stop, second-color second-color-stop);
例:
@include background(linear-gradient(to right, blue 0px, purple 40px, orange 150px, red 100%);
背景辐射渐变语法
@include background-image(radial-gradient(100% circle, pink 15%, red 100%);
使用compass image-url帮助工具添加背景图像
background-image: url('../img/img.png');
Compass语法(配置在config.rb文件中的image_dir):
background-image: image-url('img.png');
Compass缓存消除功能
可以阻止浏览器缓存已经更改过的旧文件,去除该功能:
background-image: image-url('img.png', false, false);
第一个参数用于url()函数,若设为true,编译后结果:
background-image: ../img/img.png;
Compass的image sprites功能
$buy-sprite-dimensions: true;
$buy-spacing: 10px;
$buy-layout: horizontal; // 水平排列方式
$buy-layout: vertical; // 纵向排列方式
$buy-layout: diagonal; // 对角排列,最浪费资源的排列方式
$buy-layout: smart; // 智能排列方式,最不浪费资源的方式
CSS变形功能
@include scale(2, 2); // 缩放:让它变为原尺寸的两倍
@include translateX(20px); // 平移:向右平移20px
给单一元素同时添加多种变化,可以使用 simple-transform混合宏,示例如下:
@include simple-transform(1.05, 3deg); // 图像放大1.05倍,并旋转3度
传递的参数必须按照scale、rotate、traslate-x、traslate-y、skew-x、skew-y、origin-x、origin-y的顺序排列
Compass过渡
@include single-transition(all, .3s, ease, 0s);
Sass的计算
.addition{
width: 20% + 80%;
}
.addition {
width: 100%;
}
.subtraction {
width: 80% - 20%;
}
.subtraction {
width: 60%;
}
.multiplication {
width: 20px * 80px;
}
.multiplication {
width: 20 * 80px;
}
.multiplication {
width: 1600px;
}
.division {
width: 80% / 20%;
}
.division {
width: 80%/20%;
}
.division {
width: (80% / 20%);
}
.division {
width: 4%;
}
.addition-and-division-parenthesis {
width: 20px + 80px / 5;
}
.addition-and-division-parenthesis {
width: 36px;
}
Sass中的控制命令
@if $color-theme == pink {
$color-brand: pink;
} @else if $color-theme == orange {
$color-brand: #ff9900;
}
@for $i from 1 through 4 {
// 将实现4次循环,从1到4
}
@for $i from 1 to 4 {
// 将实现3次循环,从1到3
}
$colors-list: $color-theme $theme-adjust-complement2 $theme-complement $theme-adjust $theme-adjust-complement $theme-shade $theme-tint
@each $current-color in $colors-list {
// do something
}
@function test($para) {
// do something
@return $result;
}
Sass和Compass设计师指南的更多相关文章
- Sass和Compass设计师指南 Ben Frain 中文高清PDF扫描版
Sass和Compass设计师指南是<响应式Web设计:HTML5和CSS3实战>作者Ben Frain的又一力作.作者通过丰富.完整的案例,循序渐进地展示了Sass和Compass的使用 ...
- 分享15款很实用的 Sass 和 Compass 工具
Sass 是 CSS 的扩展,增加了嵌套规则,变量,混入功能等很多更多.它简化了组织和维护 CSS 代码的成本.Compass 是一个开源的 CSS 框架,使得使用 CSS3 和流行的设计模式比以往任 ...
- 【Sass初级】开始使用Sass和Compass
转自:http://www.w3cplus.com/preprocessor/beginner/getting-started-with-sass-and-compass.html 如果你的朋友.同事 ...
- Compass用法指南
Compass用法指南 Sass是一种"CSS预处理器",可以让CSS的开发变得简单和可维护.但是,只有搭配Compass,它才能显出真正的威力. 本文介绍Compass的用法 ...
- Sass和compass 安装 和配合grunt实时显示 [Sass和compass学习笔记]
demo 下载http://vdisk.weibo.com/s/DOlfkrAWjkF/1401192855 为什么要学习Sass和compass ?提高站独立和代码产品化的绝密武器,尤其是程序化cs ...
- 揭开Sass和Compass的神秘面纱
揭开Sass和Compass的神秘面纱 可能之前你像我一样,对Sass和Compass毫无所知,好一点儿的可能知道它们是用来作为CSS预处理的.那么,今天请跟我一起学习下Sass和Compass的一些 ...
- Sass学习之路:Sass、Compass安装与命令行
导言 CSS不是一门真正意义上的编程语言,很多编程语言理所当然的特性(比如变量),都不被支持.同时再开发模块化的web项目的时候,也要避免相互干扰.为了弥补CSS的这些不足,就产生了CSS预处理器,S ...
- Sass和Compass制作雪碧图
1.安装好了sass与compass之后设置一个配置文件 2.新增一个雪碧图文件夹用来存放将要合并的图片例如color文件夹 3.@import命令引用 .Compass看到@import指令的参数为 ...
- SASS、COMPASS 安装指南
如果你还不知道 SASS 和 COMPASS 是什么,可以参看http://sass-lang.com 和http://compass-style.org,近期可能会更新一篇介绍性的入门教程,但 是本 ...
随机推荐
- 移动端类似IOS的滚动年月控件(需要jQuery和iScroll)
一. 效果图 二. 功能介绍 支持滚动和点击选择年月.(目前只支持设置年月的最大最小值,不支持整体的最大最小值) 三. 代码 1. 在你的html中添加如下代码: 直接加载<body>里面 ...
- 【转】HTTP HEAD
原文出自:http://kb.cnblogs.com/page/92320/ HTTP(HyperTextTransferProtocol)即超文本传输协议,目前网页传输的的通用协议.HTTP协议采用 ...
- PostgreSQL中的数组与Any
建立表: CREATE TABLE sal_emp ( name text, pay_by_quarter integer[], schedule text[][] ); 插入数据: INSERT I ...
- Windows转到linux中,文件乱码,文件编码转换
最近,学习又重新开始Linux学习,所以一直在Centos中,昨天一朋友把他在Windows下写的C程序发给我,我欣然答应,本以为很快就能在我的Linux系统中运行起来.没想到出现了乱码,结果想把这个 ...
- c++训练营--重载
// demo1.cpp : 定义控制台应用程序的入口点. //通过此例程了解重载 #include "stdafx.h" #include <iostream> us ...
- IOS 7 Study - UIDatePicker
Picking the Date and Time with UIDatePicker effect: 1. declaring a property of type UIDatePicker #im ...
- [转]O(n)回文子串算法 Manacher算法
这里,我介绍一下O(n)回文串处理的一种方法.Manacher算法.原文地址:http://zhuhongcheng.wordpress.com/2009/08/02/a-simple-linear- ...
- Android上的SQLLite性能分析
也许有人还不知道,Android 是有一些内建的 类库支持 SQL Lite 数据库的操作.他提供了一个很好的方式在 Android 上组织少量的数据.不管怎样,在使用这些类库的时候有一些陷阱是需要注 ...
- The sound of silence引发的关于互联网以及教育的利弊思考
“茫茫人海里,人群跟著人群,我们无时无刻不感到孤寂.停下来让我们好好沟通吧,否则人类的关系将日形恶化,沦为新世纪科技的牺牲品” ------- Simon 说实话,我第一次看<毕业生>应该 ...
- Java SSH远程执行Shell脚本实现(转)
前言 此程序需要ganymed-ssh2-build210.jar包(下载地址:http://www.ganymed.ethz.ch/ssh2/) 为了调试方便,可以将\ganymed-ssh2-bu ...