sass与compass实战(读书笔记)

// compass create myproject

// compass compile
// compass compile --force      重新编译未改动的

// compass compile --output-style compressed
// compass compile --output-style compressed --force

// compass watch

// compass模块:reset css3 layout typography utilities

// 使用变量
$company-blue: #eee;
$basic-border: 1px solid black;

// 使用嵌套
// 属性嵌套
nav{
    border:{
        width: 1px;
        style:solid;
        color:red;
    }
}
nav{
    border:1px solid #ccc{
        left: 0;
        right: 0;
    }
}

// 使用混合器来复用一段样式   (混合器在每一个被包含进来的地方就会就地复制一段样式)
@mixin horizontal-list{
    li{
        float:left;
        margin-right:10px;
    }
}
#header ul.nav{
    @include horizontal-list;
    margin-top:10px;
}
#footer ul.nav{
    @include horizontal-list;
    margin-top:20px;
}

// 混合器和变量的结合使用
@mixin horizontal-list($spacing:10px){
    li{
        float:left;
        margin-right:$spacing;
    }
}
#header ul.nav{
    @include horizontal-list;
    margin-top:10px;
}
#footer ul.nav{
    @include horizontal-list(20px);
    margin-top:20px;
}

// 使用继承来避免混合器的复制
.warning{
    background-color: #ccc;
}
.other-warning{
    @extend .warning;
}

// 使用占位符  (上面warning和other-warning都是需要在HTML中使用到的,但有时父类不需要再HTML中使用)
%button-reset{
    margin: 0;
    padding: 5px 12px;
    cursor: pointer;
}
.save{
    @extend %button-reset;
    color: #fff;
}
.delete{
    @extend %button-reset;
    color: #000;
}

// Compass是一个强大的Sass框架,自身包含了很多有Sass混合器和函数构成的模块

@import "compass/reset";           //重置

@import "compass/reset/utilities";    //基础辅助作用,使下面的global-reset可用
@include global-reset;
// @include reset-html5;

@import "compass/utilities/tables";         //表格
.table{
    $table-color:#666;
    width: 100%;
    @include table-scaffolding;    //base table style
    @include inner-table-borders(1px,darken($table-color,40%));   //table inner-border
    @include outer-table-borders(1px);              //table outer-border
    @include alternating-rows-and-columns($table-color,adjust-hue($table-color,-120deg),#222);  //th and td color
}

// 混合器源码
@mixin table-scaffolding{
    th{
        text-align: center;
        font-weight: bold;
    }
    td,th{
        padding: 2px;
        &.numeric{
            text-align: right;
        }
    }
}

@import "compass/css3";          //CSS3
.rounded{
    @include border-radius(5px);
    @include border-corner-radius(top,left,20px);
}

// 如果你并不打算支持所有的浏览器厂商
$experimental-support-for-opera:false;
$experimental-support-for-microsoft:false;
$experimental-support-for-khtml:false;

@include box-shadow(#ccc 5px 5px 2px);
@include text-shadow(
    rgba(#000,.5) -200px 0 0,
    rgba(#000,.4) -400px 0 0,
    rgba(#000,.3) -600px 0 0,
    rgba(#000,.3) -800px 0 0
);
@include box-shadow(
    rgba(#000,.5) -200px 0 0,
    rgba(#000,.4) -400px 0 0,
    rgba(#000,.3) -600px 0 0,
    rgba(#000,.3) -800px 0 0
);
@include background(                         渐变
    linear-gradient(
        360deg,
        #bfbfbf 0%,
        #bfbfbf 12.5%,
        #bfbf00 12.5%,
        #bfbf00 25%,
        #00bfbf 37.5%,
        #00bfbf 37.5%,
        #00bf00 50%,
        #00bf00 50%,
        #bf00bf 62.5%,
        #bf00bf 62.5%,
        #bf0000 75%,
        #bf0000 75%,
        #0000bf 87.5%,
        #000 100%
    )
);

// https://www.google.com/fonts/        Google字体的使用

// Sass允许 @import 命令写在CSS规则内
.blue-theme{
    @import "blue-theme";
}

// 可以把原始的CSS文件改名为.SCSS后缀,即可直接导入了

// 这种注释内容不会出现在生成的css文件中
/* 这种注释内容会出现在生成的css文件中 */

// 混合器中不仅可以包含属性,也可以包含CSS规则,包含选择器和选择器中的属性
@mixin no-bullets{
    list-style: none;
    li{
        margin-left: 10px;
    }
}

// 给混合器传参
@mixin link-colors($normal,$hover){
    color: $normal;
    &:hover{
        color: $hover;
    }
}
a{
    @include link-colors(blue,red);
}
// ..........................设默认值...................
@mixin link-colors($normal:blue,$hover:red){
    color: $normal;
    &:hover{
        color: $hover;
    }
}
a{
    @include link-colors(blue,red);
}

// 不要用后代选择器去继承!!!
.foo .bar{
    @extend .bar;
}

// ...................................网络布局..............................
// 所有的CSS网络布局都有列的概念,并且这些列在同一容器内是等宽的

@import "compass/typography";         //更快更直观的排版工具

@include link-colors(#333,red);       //默认和hover时的颜色
@include hover-link;                  //添加下划线
@include unstyled-link;               //隐形的链接
@include pretty-bullets(‘a.png‘);     //装点列表       注意是加在ul上面喔
ul.features{
    @include pretty-bullets(‘a.png‘);
}

// pretty-bullets混合器使用了image-url辅助器,它可以在开发环境和生产环境返回各自不同的完整路径

// 去掉项目符号
li.no-bullet{
    @include no-bullet;
}
ul.no-bullet{
    @include no-bullets;
}

@include horizontal-list;     //轻松横向排列   对于支持:first-child和.last-child的浏览器,则省去了两遍元素的padding,对于低版本浏览器,则可以使用.first和.last
ul.nav{
    // @include horizontal-list;
    @include horizontal-list(10px,right);      //改变列表间距并颠倒次序并右浮动
}

@include delimited-list;        //让列表看起来像文字排列一样哈
ul.words{
    @include delimited-list("! ");
}

@include ellipsis;      //点点点
@include nowrap;        //防止折行

@include replace-text("a.png");         //用图片来替换文字

@import "compass/layout";               //布局模块

// 粘滞的页脚
<div id="content">
    start<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>end
    <div id="blank"></div>
</div>
<div id="footer">停靠在页脚的内容</div>

@include sticky-footer(80px,"#content","#blank","#footer");  //利用margin-bottom负值实现:无论content内容多少,footer永在最下面

@include stretch(15px,15px,15px,15px);  //流布局

// ................................Compass精灵,重!.....................................
@import "compass/utilities/sprites";

$icon-spacing:30px;          //设置间距
$icon-a-spacing:60px;        //设置图片a的间距
$icon-repeat: no-repeat;      //设置精灵的重复性
$icon-a-repeat:repeat-x;
$icon-position:0;             //设置精灵的偏移量
$icon-b-position:100%;
$icon-layout:vertical/horizontal/diagonal/smart;     //对于采用智能布局或对角线布局的精灵地图,位置和重复性的设置是无效的
$icon-clean-up:true/false;          //清除过期的精灵地图

@import "icon/*.png";

@include all-icon-sprites;         //可写可不写
.icon1{
    @include icon-sprite-dimensions(a);
    @include icon-sprite(a);
}

//设置精灵大小的3种方式
$icon-sprite-dimensions:true;      //头部给整体设置

width: icon-sprite-width(a);       //样式内部单独设置
height: icon-sprite-height(a);

@include icon-sprite-dimensions(a); //样式内部自动设置

//设置精灵的基础类(同样在引入图片之前定义,具体的类不必在引入图片之前定义)
$icon-sprite-base-class:".yangkang";
.yangkang{
    border: 2px solid red;
}

//魔术精灵选择器 只需要给图片命名 a.png/a_hover.png等等即可
$disable-magic-sprite-selectors:true/false;

// ....................驾驭精灵辅助器.....P131待看..................

// 用Sass编写脚本
时间: 2024-08-24 11:06:07

sass与compass实战(读书笔记)的相关文章

sass和compass实战 读书笔记(一)

sass优势: 不做重复的工作 一  消除样式表冗余(通过变量赋值的方式) 1. 通过变量来复用属性值 2. 使用嵌套来快速写出多层级的选择器 3. 通过混合器来复用一段样式 4. 使用选择器继承来避免重复属性 sass通过配置文件config.rb配置文件输出路径 sass基础语法 变量声明  局部变量和全局变量的概念 css代码块中定义的变量就是局部变量 $base-border:1px solid #ccc; $plain-font:Helvetica."Microsoft Yahei&q

R实战读书笔记四

第三章 图形入门 本章概要 1 创建和保存图形 2 定义符号.线.颜色和坐标轴 3 文本标注 4 掌控图形维数 5 多幅图合在一起 本章所介绍内容概括如下. 一图胜千字,人们从视觉层更易获取和理解信息. 图形工作 R具有非常强大的绘图功能,看下面代码. > attach(mtcars) > plot(wt, mpg) > abline(lm(mpg~wt)) > title("Regression of MPG on Weight") > detach(m

JAVA并发编程实战 读书笔记(二)对象的共享

<java并发编程实战>读书摘要 birdhack 2015年1月2日 对象的共享 JAVA并发编程实战读书笔记 我们已经知道了同步代码块和同步方法可以确保以原子的方式执行操作,但一种常见的误解是,认为关键之synchronized只能用于实现原子性或者确定临界区.同步还有另一个重要的方面:内存可见性. 1.可见性 为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制. 在没有同步的情况下,编译器.处理器以及运行时等都可能对操作的执行顺序进行一些意想不到的调整.在缺乏足够同步的多线程程

[已读]Sass与Compass实战

介绍了Sass基础语法与Compass框架,这个网上参考文档就OK了,另外介绍了compass生成图片精灵和相应的css,貌似现在单纯用sass和compass的挺少,要不grunt,要不FIS,而grunt和FIS貌似都有自己的图片精灵方案(好吧,我都没用过)?所以,这本书也没什么必要看了→ →

Spring3.x企业开发应用实战读书笔记 —— 第三章IoC容器概述

声明:    本篇博客绝大多数内容为<Spring3.x企业开发应用实战>一书原内容,所有版权归原书作者所有!,仅供学习参考,勿作他用! 3.2 相关Java基础知识 Java语言允许通过程序化的方式间接对Class对象实例操作,Class文件由类装载器装在后,在JVM(Java虚拟机)中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息: 如构造函数.属性和方法等.Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能,这就为使用程

机器学习实战读书笔记(三)决策树

3.1 决策树的构造 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据. 缺点:可能会产生过度匹配问题. 适用数据类型:数值型和标称型. 一般流程: 1.收集数据 2.准备数据 3.分析数据 4.训练算法 5.测试算法 6.使用算法 3.1.1 信息增益 创建数据集 def createDataSet(): dataSet = [[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 1, '

R语言实战读书笔记(二)创建数据集

2.2.2 矩阵 matrix(vector,nrow,ncol,byrow,dimnames,char_vector_rownames,char_vector_colnames) 其中: byrow=TRUE/FALSE,表示按行填充还是按列填充,默认情况下是按列填充 2.2.4 数据框 1.attach,detach()和with() attach():将数据框加入搜索路径 detach():将数据框移除出搜索路径 with():赋值仅在括号内有效,如果想在括号外生效也可以,用<<- 2.

机器学习实战读书笔记(二)k-近邻算法

knn算法: 1.优点:精度高.对异常值不敏感.无数据输入假定 2.缺点:计算复杂度高.空间复杂度高. 3.适用数据范围:数值型和标称型. 一般流程: 1.收集数据 2.准备数据 3.分析数据 4.训练算法:不适用 5.测试算法:计算正确率 6.使用算法:需要输入样本和结构化的输出结果,然后运行k-近邻算法判定输入数据分别属于哪个分类,最后应用对计算出的分类执行后续的处理. 2.1.1 导入数据 operator是排序时要用的 from numpy import * import operato

用node.js 搭建的博客程序心得(node.js实战读书笔记1)

学习node已经有一段时间了,之前把了不起的node.js看完了,基本算了解了一些node的基本的用法还有一些概念了,然后就开始看第二本node.js实战,第一章就是搭建一个博客程序.但是不得不吐槽一下node,发展得太块了,很多库已经和之前的用法不一样了,就要一直去百度google来查询最新的用法,其实我觉得这样并不见得是一件好事,因为不稳定,所以就不好学习,就要一直保持对于node的关注.不废话了,这篇文章就大概说一些在这章里面所学习到的一些东西,经验总结吧 1.express - 基于 N