css3

06 Apr 2014


css3简介

css3模块:css3被划分为模块,其中最重要的css3模块包括:

  • 选择器
  • 框模型
  • 背景和边框
  • 文本效果
  • 2d/3d转
  • 动画
  • 多列布局
  • 用户界

css3边框

新的边框属性:

属性 描述 CSS
border-image 设置所有 border-image-* 属性的简写属性。 3
border-radius 设置所有四个 border-*-radius 属性的简写属性。 3
box-shadow 向方框添加一个或多个阴影。 3

浏览器支持:

Internet Explorer 9+ 支持 border-radius 和 box-shadow 属性。不支持border-image属性。

Firefox、Chrome 以及 Safari 支持所有新的边框属性。

注释:对于 border-image,Safari 5 以及更老的版本需要前缀 -webkit-。

Opera 支持 border-radius 和 box-shadow 属性,但是对于 border-image 需要前缀 -o-。

css3背景

新的背景属性

属性 描述 CSS

background-clip 规定背景的绘制区域。 3

background-origin 规定背景图片的定位区域。 3

background-size 规定背景图片的尺寸。 3

background: linear-gradient( to right, #ff9e2c 0%, #ff9e2c 50%, #b6701e 50%, #b6701e 100% );

CO
OK

-webkit-text-fill-color: transparent;

-webkit-background-clip: text;

CSS3 文本效果

  • text-shadow
  • word-wrap

Internet Explorer 10、Firefox、Chrome、Safari 以及 Opera 支持 text-shadow 属性。

所有主流浏览器都支持 word-wrap 属性。

注释:Internet Explorer 9 以及更早的版本,不支持 text-shadow 属性。

CSS3 字体

CSS3 @font-face 浏览器支持

Firefox、Chrome、Safari 以及 Opera 支持 .ttf (True Type Fonts) 和 .otf (OpenType Fonts) 类型的字体。

Internet Explorer 9+ 支持新的 @font-face 规则,但是仅支持 .eot 类型的字体 (Embedded OpenType)。

注释:Internet Explorer 8 以及更早的版本不支持新的 @font-face 规则。

css3 2d转换

通过css3转换,可以对元素进行移动、缩放、转动、拉长或拉伸。转换是使元素改变形状、尺寸和位置的一种效果。可以使用2d或3d转换来转换元素。

浏览器支持

Internet Explorer 10、Firefox 以及 Opera 支持 transform 属性。

Chrome 和 Safari 需要前缀 -webkit-。

注释:Internet Explorer 9 需要前缀 -ms-。

2D Transform 方法
  • translate() :通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标)
  • rotate() :通过 rotate() 方法,元素顺时针旋转给定的角度。允许负值,元素将逆时针旋转。
  • scale() :通过 scale() 方法,元素的尺寸会增加或减少,根据给定的宽度(X 轴)和高度(Y 轴)参数。
  • skew() :通过 skew() 方法,元素翻转给定的角度,根据给定的水平线(X 轴)和垂直线(Y 轴)参数。
  • matrix() :matrix() 方法把所有 2D 转换方法组合在一起。matrix() 方法需要六个参数,包含数学函数,允许您:旋转、缩放、移动以及倾斜元素。
函数 描述
matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。
translate(x,y) 定义 2D 转换,沿着 X 和 Y 轴移动元素。
translateX(n) 定义 2D 转换,沿着 X 轴移动元素。
translateY(n) 定义 2D 转换,沿着 Y 轴移动元素。
scale(x,y) 定义 2D 缩放转换,改变元素的宽度和高度。
scaleX(n) 定义 2D 缩放转换,改变元素的宽度。
scaleY(n) 定义 2D 缩放转换,改变元素的高度。
rotate(angle) 定义 2D 旋转,在参数中规定角度。
skew(x-angle,y-angle) 定义 2D 倾斜转换,沿着 X 和 Y 轴。
skewX(angle) 定义 2D 倾斜转换,沿着 X 轴。
skewY(angle) 定义 2D 倾斜转换,沿着 Y 轴。

实例:

translate() 方法: transform: translate(100px,10px);把元素从左侧移动100px,从顶端移动10px。
translate() 方法: transform: translate(100px,10px);把元素从左侧移动100px,从顶端移动10px。
transform: rotate(30deg);值 rotate(30deg) 把元素顺时针旋转 30 度。
transform: rotate(30deg);值 rotate(30deg) 把元素顺时针旋转 30 度。
transform: scale(1.5,1.2); 把宽度转换为原始尺寸的 1.5 倍,把高度转换为原始高度的 1.2 倍。
transform: scale(1.5,1.2); 把宽度转换为原始尺寸的 1.5 倍,把高度转换为原始高度的 1.2 倍。
transform: skew(30deg,20deg);值 skew(30deg,20deg) 围绕 X 轴把元素翻转 30 度,围绕 Y 轴翻转 20 度。
transform: skew(30deg,20deg);值 skew(30deg,20deg) 围绕 X 轴把元素翻转 30 度,围绕 Y 轴翻转 20 度。
transform: matrix(1.0, 2.0, 3.0, 4.0, 5.0, 6.0);
transform: matrix(1.0, 2.0, 3.0, 4.0, 5.0, 6.0);

CSS3 3D 转换

Internet Explorer 10 和 Firefox 支持 3D 转换。

Chrome 和 Safari 需要前缀 -webkit-。

Opera 仍然不支持 3D 转换(它只支持 2D 转换)。

3D Transform 方法
函数 描述
matrix3d(n,n,n,n,n,n,
n,n,n,n,n,n,n,n,n,n)
定义 3D 转换,使用 16 个值的 4x4 矩阵。
translate3d(x,y,z) 定义 3D 转化。
translateX(x) 定义 3D 转化,仅使用用于 X 轴的值。
translateY(y) 定义 3D 转化,仅使用用于 Y 轴的值。
translateZ(z) 定义 3D 转化,仅使用用于 Z 轴的值。
scale3d(x,y,z) 定义 3D 缩放转换。
scaleX(x) 定义 3D 缩放转换,通过给定一个 X 轴的值。
scaleY(y) 定义 3D 缩放转换,通过给定一个 Y 轴的值。
scaleZ(z) 定义 3D 缩放转换,通过给定一个 Z 轴的值。
rotate3d(x,y,z,angle) 定义 3D 旋转。
rotateX(angle) 定义沿 X 轴的 3D 旋转。
rotateY(angle) 定义沿 Y 轴的 3D 旋转。
rotateZ(angle) 定义沿 Z 轴的 3D 旋转。
perspective(n) 定义 3D 转换元素的透视视图。

css3 过渡

通过 CSS3,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果。

浏览器支持

Internet Explorer 10、Firefox、Chrome 以及 Opera 支持 transition 属性。

Safari 需要前缀 -webkit-。

注释:Internet Explorer 9 以及更早的版本,不支持 transition 属性。

注释:Chrome 25 以及更早的版本,需要前缀 -webkit-。

CSS3 过渡是元素从一种样式逐渐改变为另一种的效果。

要实现这一点,必须规定两项内容:

  • 规定您希望把效果添加到哪个 CSS 属性上
  • 规定效果的时长

实例:

CSS3 动画

通过 CSS3,我们能够创建动画,这可以在许多网页中取代动画图片、Flash 动画以及 JavaScript。

CSS3 @keyframes 规则

如需在 CSS3 中创建动画,您需要学习 @keyframes 规则。

@keyframes 规则用于创建动画。在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果。

浏览器支持

Internet Explorer 10、Firefox 以及 Opera 支持 @keyframes 规则和 animation 属性。

Chrome 和 Safari 需要前缀 -webkit-。

注释:Internet Explorer 9,以及更早的版本,不支持 @keyframe 规则或 animation 属性。

CSS3 动画属性

下面的表格列出了 @keyframes 规则和所有动画属性:

属性 描述 CSS

@keyframes 规定动画。 3

animation 所有动画属性的简写属性,除了 animation-play-state 属性。 3

animation-name 规定 @keyframes 动画的名称。 3

animation-duration 规定动画完成一个周期所花费的秒或毫秒。默认是 0。 3

animation-timing-function 规定动画的速度曲线。默认是 "ease"。 3

animation-delay 规定动画何时开始。默认是 0。 3

animation-iteration-count 规定动画被播放的次数。默认是 1。 3

animation-direction 规定动画是否在下一周期逆向地播放。默认是 "normal"。 3

animation-play-state 规定动画是否正在运行或暂停。默认是 "running"。 3

animation-fill-mode 规定对象动画时间之外的状态。 3

animation-name: myfirst;

animation-duration: 5s;

animation-timing-function: linear;

animation-delay: 3s;

animation-iteration-count: infinite;

animation-direction: alternate;

animation-play-state: running;

animation: myfirst 5s linear 3s infinite alternate;

实例:

css3 多列

  • column-count
  • column-gap
  • column-rule

浏览器支持

Internet Explorer 10 和 Opera 支持多列属性。

Firefox 需要前缀 -moz-。

Chrome 和 Safari 需要前缀 -webkit-。

注释:Internet Explorer 9 以及更早的版本不支持多列属性。

新的多列属性

下面的表格列出了所有的转换属性:

属性 描述 CSS

column-count 规定元素应该被分隔的列数。 3

column-fill 规定如何填充列。 3

column-gap 规定列之间的间隔。 3

column-rule 设置所有 column-rule-* 属性的简写属性。 3

column-rule-color 规定列之间规则的颜色。 3

column-rule-style 规定列之间规则的样式。 3

column-rule-width 规定列之间规则的宽度。 3

column-span 规定元素应该横跨的列数。 3

column-width 规定列的宽度。 3

columns 规定设置 column-width 和 column-count 的简写属性。 3