#1 课程介绍人们走进喧闹中去,是为了忘却污迹。
Compass是什么:简单的说,就是在sass
的基础上构建起的一整套强大的工具。
#2 Compass核心模块概述&Reset模块
##2.1 Compass核心模块当我的巴特农神庙建起来的时候,我在这遥远的地方也能感受到它的辉煌。
###2.1.1 核心模块
|模块|用途|引入|
|—–|—-|——-|
|Reset|浏览器重置模块,用来减少不同浏览器之间的差异。|@import "compass/reset"
|
|Layout|提供页面布局的控制能力|@import "compass/layout"
|
###2.1.2 其它模块
引入方式:@import "compass"
模块 | 用途 |
---|---|
CSS3 | 提供跨浏览器的CSS3能力 |
Helpers | 包含一些列函数,丰富强大 |
Typography | 修饰文本样式 |
Utilities | 辅助工具模块 |
Browser | 控制浏览器的适配,会影响其它所有模块 |
###2.1.3 安装插件获得额外模块
注意:sass中使用@import
引入模块是简单粗暴的,重复@import
会导致性能问题。
以引入normalize
模块为例
1 | $ cd learn-sass-syntax |
###2.2 Normalize核心模块
自模块引入方式:@import "normalize/[子模块名]"
注意:以子路径的方式引入子模块依赖于@import "normalize-version"
核心模块 | 用途 |
---|---|
base | 文字大小、边距等 |
html5 | 统一h5中新增标签的样式:article ,aside ,section ,time 等 |
links | 统一a标签的样式 |
typography | 统一b ,strong ,h1 ,sub ,sup 等段落文本的样式修饰 |
embeds | 统一img ,svg 等标签的样式修饰 |
groups | 统一figure ,pre ,code 等标签的样式 |
forms | 统一button ,input ,textarea 等表单相关标签的样式 |
tables | 统一表格相关标签相关的样式tr ,td ,th 等 |
1 | @import "normalize-version"; |
###2.3 探究compass本身的子模块加载方式
1 | @import "compass/reset" |
等价于
1 | @import "compass/reset/utilities" |
###2.4 Reset核心mixin
说明:和所有模块一一对应
http://compass-style.org/reference/compass/reset/utilities/
案例:只对.test-reset-box-model
重置样式
1 | @import "compass/reset/utilities"; |
1 | .test-reset-box-model { |
#3 Layout模块
地位:使用率最低的模块
引入:@import "compass/layout"
子模块:3个自模块
@import "compass/layout/grid-background";
@import "compass/layout/sticky-footer";
@import "compass/layout/strechting';"
##3.1 grid-background
用途:制作网格背景
http://compass-style.org/reference/compass/layout/grid_background/
1 | @import "compass/layout/grid-background"; |
##3.2 sticky-footer
用途:提供设置元素固定在底部的mix
(当页面内容不能占满窗口时目标位于窗口底部,超过窗口时,目标处在页面的底部。)
注意:
- 需要html结构符合相关规则
- 也可以自定义相关id的名字(参考API:http://compass-style.org/reference/compass/layout/sticky_footer/)
1 |
|
1 | @import "compass/layout/sticky-footer"; |
##3.3 stretching
用途:提供了设置元素的偏移的mixin
API:http://compass-style.org/reference/compass/layout/stretching/
以其中一个mixin
(stretch
)为例
1 | @import "compass/layout"; |
1 | .streth-full { |
#4 CSS3模块&Brower Support模块
##4.1 CSS3模块
地位:主动使用频率最高的模块
用途:提供跨浏览器的CSS3能力
1 | @import "compass/css3"; |
1 | .webdemo-sec { |
##4.2 Brower Support模块
注意:引入css3
模块时也会同时引入该模块
###4.2.1 调试compass
- scss中调试
1 | //列出所有主持的浏览器列表 |
1 | android, android-chrome, android-firefox, blackberry, chrome, firefox, ie, ie-mobile, ios-safari, opera, opera-mini, opera-mobile, safari |
- 控制台debug
1 | $ compass interactive |
###4.2.2 Brower Support模块参数
1 | @import "compass/css3"; |
1 | /* line 28, ../sass/screen.scss */ |
#5 Tygography模块
##5.1 Tygography模块(上)人活一世,有的人成了里子,有的人成了面子。
子模块:
- Links
- Lists
- Text
- Vertical Rhythm
###5.1.1 Links:链接
- hover-link
1 | @import "compass/typography/links"; |
1 | a { |
- hover-colors
1 | @import "compass/typography/links"; |
1 | a { |
- unstyled-link
1 | @import "compass/typography/links"; |
1 | a { |
###5.1.2 Lists:有序列表和无需列表
- no-bullets:去掉
ul,li
的默认样式
1 | @import "compass/typography/lists"; |
1 | .lidt-unstyled { |
- no-bollet:去掉
li
的默认样式
1 | @import "compass/typography/lists"; |
1 | .lidt-unstyled li { |
- horizontal-list:
1 | .list-horizontal{ |
1 | .list-horizontal { |
###5.1.3 Text
- force-wrap:去掉空白符号,保留换行符,长字符串在行末强制换行。
1 | @import "compass/typography/text"; |
1 | .text-force-wrap { |
- nowrap:超出一行不自动折行
1 | .text-nowrap{ |
1 | .text-nowrap { |
- ellipsis:当文本超过一行时将多出的文本用
...
替换,当鼠标悬浮时才浮出全部内容
1 | @import "compass/typography/text"; |
1 | .text-ellipsis { |
- 隐藏文本(如果图片上就带有文字,这是需要将html中和它重复的文本隐藏)
1 | @import "compass/typography/text"; |
1 | .text-hide { |
- replace-text:使用图片取代文本
1 | @import "compass/typography/text"; |
1 | .btn-find { |
##5.2 Tygography模块(下)
###5.2.1 Vertical Rhythm
用途:做网页布局的参照(尤其是行高问题)
1 |
|
1 | ... |
#6 Helpers模块
##6.1 Helpers模块(上)
###6.1.1 Base64取代图片下载
优点:减少请求数目,加快页面渲染
缺点:和直接使用图片相比
- CPU资源多消耗50%
- 多使用4倍的内存
- 不支持IE6/7
1 | //ruby.config中已经配置过图片的路径,因此直接写图片名称 |
1 | .analizer-logo { |
###6.1.2 image-url
用途:解决引用图片的痛点
优点:
- 自动生成md5(缓存克星)
- 整合compass的路径管理功能
1 | $ vim config.rb |
1 | .analizer-logo{ |
1 | .analizer-logo { |
##6.2 Helpers模块(下)
###6.2.1 调试信息
1 | //再终端打印出当前的编译环境(production/environment) |
1 | /Users/tonyearth/Documents/My Study/sass/learn-sass-syntax/sass/screen.scss:28 DEBUG: production |
1 | #设置环境 |
###6.2.2 font-file
说明:针对字体文件
- @debug font-files
1 | //在终端输出文字 |
1 | /Users/tonyearth/Documents/My Study/sass/learn-sass-syntax/sass/screen.scss:23 DEBUG: url('../fonts/minijianyaya.woff?1431855246') format('woff'), url('../fonts/minijianyaya.ttf?1431855246') format('truetype'), url('../fonts/minijianyaya.svg?1431855246') format('svg'), url('../fonts/minijianyaya.eot?1431855246') format('embedded-opentype') |
- @include font-face(并不属于
helper
模块)
1 | @import "compass/css3"; |
1 | @font-face { |
- append-selector:将某个选择器组合到其它选择器中
1 | #{append-selector("p,div,span,", ".bar")}{ |
1 | p.bar, div.bar, span.bar { |
#7 Utilities模块
##7.1 compass-utilities-1
##7.2 compass-utilities-2
##7.3 compass-utilities-3