一.浏览器前缀

E{
-moz-name : value; /* Firefox */
-ms-name : value; /* IE */
-o-name : value; /* Opera */
-webkit-name : value; /* WebKit */
name : value; /* 适应未来标准方式 */
}

二.媒体查询

1.使用媒体查询的3种方式

  1. head部分

    <link href="css.css" rel="stylesheet" media="mediaType and (expr)" />
  2. css文件首行

    @import url("css.css") mediaType and (expr);
  3. 样式规则内部

    @media mediaType and (expr) {
    /* styles */
    }

2.mediaType的取值

只有all(没有意义,不如不加)、screen和print是浏览器厂商广泛支持的,可选值还有:

  • braille:盲文

  • embossed:盲文打印

  • handheld:手持设备,并不好用

  • projection:投影设备

  • speech:演讲

  • tty:显示等宽字体的设备,比如电传打字机

  • tv:电视

所以算上前三个广泛支持的,一共有10个可选值

3.expr的取值

最常用的是min-[device-]width和max-[device-]width,例如:

@media screen and (min-width : 800px) {
/* 当浏览器窗口宽度>=800px时应用该样式 */
}
/*
* 一般分界值:
* 480px以下 ~ 手机浏览器
* 800px以上 ~ 桌面浏览器
* 480px到800px ~ 平板上的浏览器
*/

此外还有orientation方向、device-aspect-radio宽高比、device-pixel-radio像素比等等其它属性,更多信息请查看前端观察:media type与media query

4.构造复杂表达式

用and和only可以构造复杂表达式

  • (expr1) and (expr2):与

  • only (expr):用来对那些不支持Media Query但却支持Media Type的设备隐藏样式表,更多信息请查看博客园:Media Queries详解

  • mediaType1 (), mediaType2 ():或

5.支持性

[IE9+]支持CSS3标准,但对于非标准的属性,比如device-pixel-ratio,IE11都只是部分支持,更多支持性差异请查看Can I use

三.使用网络字体

最安全的字体引入方式:

@font-face {
font-family : "font";
src : url("font.eot");
src : local(" "), /* 注意引号包裹了一个空格,也可以是其它单个字符 */
url("font.woff") format("woff"),
url("font.ttf") format("truetype"),
url("font.svg#font") format("svg");
}

还有类似的方式,请查看Fontspring

好用的@font-face生成器,可以转字体格式并生成CSS代码,请查看Fontsquirrel

四.文字效果

1.立体效果

主要用text-shadow属性实现,[IE10+]支持,语法如下:

text-shadow : xOffset yOffset blur-radius color;

具体代码:

.shadow1 {
text-shadow :
0 -2px 3px #fff,
0 -4px 3px #aaa,
0 -6px 6px #666,
0 -8px 9px #000;
} .shadow2 {
color : #fff;
text-shadow :
0 2px rgba(0, 0, 0, 0.4),
0 4px rgba(0, 0, 0, 0.4),
0 6px rgba(0, 0, 0, 0.4),
0 8px 0 rgba(0, 0, 0, 0.4);
} .shadow3 {
background-color : #565656;
color : #333;
text-shadow : 0 1px 0 #777, 0 -1px 0 #000;
}

示例:

shadow1:黯羽轻扬 shadow2:黯羽轻扬 shadow3:黯羽轻扬

P.S.超大号的字体立体效果比较好,小字阴影效果看不清

2.控制文字溢出

text-overflow : clip/ellipsis ~ 截断/省略号(...),例如:

p {
/* 要想在一行显示省略号,下面3个属性缺一不可 */
text-overflow : ellipsis;
white-space : nowrap;
overflow : hidden;
}

支持性:[IE8+]支持

3.控制长单词自动换行

word-wrap : normal/break-word ~ 不换行,会顶破容器/自动换行

支持性:[IE6+]都支持,当然,只对英文单词有效,中文无效

五.边框样式

  1. border-radius:[IE9+]支持

  2. border-image:效果很诱人,[IE11+]支持,虽然可以用JQ插件勉强支持,但效果也很勉强,更多信息请查看张鑫旭博客:CSS3 border-image详解、应用及jQuery插件

  3. box-shadow:[IE9+]支持,具体用法请查看W3School:CSS3 box-shadow 属性

六.透明度

  1. opacity : 0.0 – 1.0; [IE9+]支持,IE8部分支持

  2. color : rgba(r, g, b, a); [IE9+]支持

七.渐变

线性渐变/放射渐变,[IE10+]支持,具体用法请查看CSS-Tricks

八.变换、过渡、动画

有几个很相似的属性,区别如下:

  • transform:变换。2D/3D变换、平移、旋转、倾斜、缩放

  • translate:平移。2D变换的子属性

  • transition:过渡。由事件触发,如hover、active等等

  • animation:动画。定义keyframes,再用animation应用动画

用这些东西可以实现常见的酷炫效果,例如:

  1. 过渡可以让简单动画平滑进行,比如鼠标悬停时链接文本“飘”向右边,div宽度缓慢增大至指定值等等

  2. 3D变换可以显示背面,比如鼠标进入,出现图片翻转效果

  3. 变换可以实现绶带效果,比如常见的右上角斜向fork me on githup,具体实现请查看博客园:给你的博客加上“Fork me on Github”彩带

九.flex布局

有一篇非常强大的完整教程:前端开发博客:CSS3弹性盒模型flexbox完整版教程

十.在线资源

  • Can I Use:[IE8+]以及其它浏览器对CSS/HTML5属性支持性

  • Modernizr:检测浏览器对HTML5和CSS3特性支持的JS库,优雅降级的不二选择

  • 代码生成工具:

  • 免费字体:Fontsquirrel:大量可以免费下载的英文字体

  • CSS3教程/文档:CSS3 Info,国外论坛,文章更新得比较慢,好像有点没落了

  • CSS3新技术:MDN,源码免登录下载

参考资料

  • 《THE BOOK OF CSS3》

  • 前辈博文若干

《The Book of CSS3》学习笔记的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

  10. ucos实时操作系统学习笔记——任务间通信(消息)

    ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...

随机推荐

  1. JavaScript Function(函数表达式)

    创建函数 创建函数的方式有两种:1.函数声明,2.函数表达式 函数声明的语法为 functionName(); //不会报错,函数声明提升function functionName(arg0,arg1 ...

  2. java 堆栈

    堆栈(stack).位于通用RAM中,但通过它的“堆栈指针”可以从处理器哪里获得支持.堆栈指针若向下移动,则分配新的内存:若向上移动,则释放那些 内存.这是一种快速有效的分配存储方法,仅次于寄存器. ...

  3. sql基础知识(新手必备)

    一.简单查询 1.查询所有数据,查询部分列数据,列别名 SELECT * FROM 表名 SELECT 列1 AS 'BIAOTI1','BIAOTI2'=列2  FROM 表名 2.查询不重复的数据 ...

  4. java时间相减(转载)

    package com.jie.java.phone; import java.text.ParseException; import java.text.SimpleDateFormat; impo ...

  5. 怎么提高ArcSDE 写入地理数据库的效率

    link: http://blog.csdn.net/linghe301/article/details/20900615 2014-03-14 09:20 2686人阅读 评论(6) 收藏 举报   ...

  6. Android-ConvenientBanner轻松实现广告头效果

    Android-ConvenientBanner通用的广告栏控件,让你轻松实现广告头效果.支持无限循环, 可以设置自动翻页和时间(而且非常智能,手指触碰则暂停翻页,离开自动开始翻页. 你也可以设置在界 ...

  7. ORACLE object_id和data_object_id

    object_id和data_object_id 都是对象的唯一标识. object_id是对象的逻辑标识 data_object_id是对象的物理标识 对于没有物理存储的对象,data_object ...

  8. ZTSD_008_1表没有某订单数据,无法回写交期

    ZTSD_008_1表没有某订单数据,无法回写交期, 取系SAP组检查执行此RFC:ZFM_FP_025_1 为什么没有将数据导进来 select * from SAPSR3.ZTSD_008_1@S ...

  9. RPC应用的java实现(转)

    一.RPC介绍 什么是RPC?Remote Procedure Call,远程过程调用.也就是说,调用过程代码并不是在调用者本地运行,而是要实现调用者与被调用者二地之间的连接与通信.比较严格的定义是: ...

  10. iOS中UITableView数据源刷新了,但tableview当中的cell没有刷新

    你会不会遇到通过断点查看数据源模型的确刷新了,但是tableview没有刷新的情况,我遇到了,并通过下面的方法解决了,供大家参考! 在tableview中的数据源代理方法 p.p1 { margin: ...