Sass与Compress实战:第五章

概要:第5章展示了Compass如何使你免去编写跨浏览器的CSS3的痛苦。

本章内容

  ● 用Compass的CSS3模块创建跨浏览器的CSS3样式表
  ● 在低版本IE中支持一些CSS3的特性
  ● Compass里的CSS3高阶技能

1.什么是CSS3

  CSS3,或称第三代层叠样式表,是基于CSS2的规范建立起来的。CSS3的变革可以归纳为两部分——更给力的选择器,帮助我们定位元素;各种新的属性,用于修饰元素的外观。

1.1 新属性:浏览器前缀让你烦透了吧

  由于浏览器厂商有各自的发布周期,浏览器接纳新特性的速度也不同,与此同时规范也在快速发展迭代。因此浏览器厂商通常会先以带有厂商前缀的方式引入CSS3的新特性。

1.2 让Compass拯救你

  Compass可以生成所有的CSS前缀,如下代码所示:

@ import " compass / css3 ";
.notice {
    @include border-radius ( 5px );
}

  在项目里,通过添加Compass的CSS3模块,使用border-radius混合器,你就可以快速生成支持所有主流浏览器的CSS代码,代码如下:

.notice {
    -moz-border-radius : 5px;
    -webkit-border-radius : 5px;
    -o-border-radius : 5px;
    -ms-border-radius : 5px;
    border-radius : 5px;
}

  在Compass里配置厂商命名空间:

@import "compass / css3";

$experimental-support-for-opera : false;
$experimental-support-for-microsoft : false;
$experimental-support-for-khtml : false;

.notice {
    @include border-radius (5px);
}

  Compass提供了几个类似于experimental-support-for-xxxx的变量配置项。如果我们以false覆盖其默认值,Compass在产出CSS时就会忽略相应的厂商命名空间。

2. 通过Compass使用CSS3

  2.1 圆角

  Compass中的CSS3border-radius:

button {
    background : red;
    border : 0;
    color : #fff;
    line-height : 30px;
    width : 100px;
}

button.rounded {
    @include border-radius (5px)
}

button.really-rounded {
    @include border-radius (10px)
}

button.extreme-rounded {
    @include border-radius (30px)
}

  上述代码中,为button设置了一些基本样式,然后再设置每个button的圆角。很明显,被@include的border-radius是一个Sass混合器。

2.2 CSS3阴影

  用CSS3创建阴影:

h1 {
    text-shadow : #cccccc 5px 5px 2px;
}
h2 {
    -moz-box-shadow : #cccccc 5px 5px 2px;
    -webkit-box-shadow : #cccccc 5px 5px 2px;
    box-shadow : #cccccc 5px 5px 2px;
    text-shadow : #dddddd -1px 1px 0;
    background : #999;
    padding : 1em;
}

  你使用的CSS3的text-shadow和box-shadow实现了那两个明显的阴影,并且再次使用text-shadow实现了镂刻文字。使用Compass的box-shadow混合器:

h2 {
    @include box-shadow (#ccc 5px 5px 2px) ;
    text-shadow : #ddd -1px 1px 0 ;
    background : #999 ;
    padding : 1em ;
} 

  Compass的box-shadow和text-shadow混合器都可以被应用为多重阴影。

时间: 2024-10-18 18:42:58

Sass与Compress实战:第五章的相关文章

Sass与Compress实战:第二章

1.使用变量 Sass使用$符号来标识变量,比如$highlight-color. 1.1声明变量 Sass声明变量和CSS声明属性很像: $highlight-color : #abcdef; 这意味着变量$highlight-color现在的值时#abcdef.任何可以用作CSS属性值的赋值都可以用作Sass的变量值,甚至是以空格分割的多个属性值,如$basic-border : 1px solid black;或以逗号分割的多个属性值,如$plain-font : "Myriad Pro&

Sass与Compress实战:第一章

1.消除冗余代码的方式: ?通过变量来复用属性值 例如,一段冗余的CSS代码: h1#brand { color : #1875e7 } #sidebar { background-color : #1875e7 } 使用Sass,把属性值赋给变量,然后在一个地方管理散落在各处的属性值.几乎任意属性值都可以赋给变量: $company-blue : #1875e7; h1#brand{ color : $company-blue; } #sidebar{ background-color : $

2017.2.28 activiti实战--第五章--用户与组及部署管理(二)部署流程资源

学习资料:<Activiti实战> 第五章 用户与组及部署管理(二)部署流程资源 内容概览:讲解流程资源的读取与部署. 5.2 部署流程资源 5.2.1 流程资源 流程资源常用的有以下几种: 1 流程定义文件:拓展名为bpmn20.xml和bpmn 2 流程定义的图片:拓展名为PNG 3 表单文件:拓展名为form 4 规则文件:拓展名为drl 部署流程资源的时候,要注意一点: 引擎会根据不同的拓展名进行不同的处理.bpmn或bpmn20.xml类型的文件,会在ACT_RU_PROCDEF(流

2017.2.20 《activiti实战第五章--用户与组及部署管理》(一)用户与组

学习资料:<Activiti实战> 第五章 用户与组及部署管理(一)用户与组 内容概览:讲解activiti中内置的一套用户.组的关系,以及如何通过API添加.删除.查询. 5.1 用户与组 5.1.1 用户 1 public class IdentityServiceTest{ 2 @Rule 3 public ActivitiRule ar = new ActivitiRule();//使用默认的acitiviti.cfg.xml作为参数 4 5 @Test 6 public void t

Sass与Compress实战:第六章

概要:介绍Compass如何让你从本地开发原型轻松转移到正产环境的网址或Web应用中. 本章内容: ● CSS精灵的历史和基本原则 ● Compass混合器让精灵自动化 ● 自定义精灵图片和CSS输出的高阶技巧 1.精灵的工作原理 在早期,CSS精灵是很简单的.设计师们会把按钮的不同状态做成图片,并把它们做成一张单个图片.然后在CSS里,他们会设置按钮的宽.高以及背景图片的属性,并在不同的状态下改变背景图的位置.如下代码: .go-button { width : 75px ; height :

Sass与Compress实战:第七章

概要:将介绍Compass如何让你从本地开发原型轻松转移到生产环境的网址或Web应用中. 本章内容: ● 生成资源URL的最佳实践 ● 撰写无需Web服务器的样式表 ● 在浏览器中进行设计的技巧 ● 如何为产品编译并构造样式表 1. 绝对URL 1.1 生成URL资源 CSS提供了url函数用来解码URL: background-image : url(‘/logo.png’) ; URL标识了资源在互联网上的位置,但是当你对照自己的资源时,你常常使用相对URL,且浏览器会根据其对当前请求的了解

Sass与Compress实战:第四章

概要:这一章将深挖Compass的工具箱,看看Compass的混合器如何帮助你省去编写重复样式表的辛苦工作. 本章内容: ● 使用Compass重置浏览器默认样式表 ● 改进样式表排版的Compass辅助器 ● 使用Compass创建粘滞的页脚.多样化的表格以及浮动 1. 一张更好的白纸源自有针对性的样式重置 1.1 全局样式重置 当你构建一个传统的Web应用程序时,如果需要支持很多浏览器,甚至包括低版本的Internet Explorer,那么一个全局的样式重置是非常给力的.Compass体统

Sass与Compress实战:第八章

概要:帮助你实现样式表的最佳性能 本章内容: ● 样式表拼接 ● 样式表和资源压缩 ● 减少和并行图片请求的策略 ● 选择器性能和优化策略 1. 测量客户端性能 性能优化的起点和终点都是测量.在第一次改变性能位置之前,你需要知道自己究竟在什么位置. 下面是一些工具: ● YSlow:http://developer.yahoo.com/yslow/. ● Google PageSpeed:http://developers.google.com/pagespeed/. ● WebPagetest

机器学习实战第五章Logistic回归

def gradAscent(dataMatIn, classLabels): dataMatrix = mat(dataMatIn) #convert to NumPy matrix labelMat = mat(classLabels).transpose() #convert to NumPy matrix m,n = shape(dataMatrix) alpha = 0.001 maxCycles = 500 weights = ones((n,1)) for k in range(m