Jade Dungeon

CSS3

CSS3 边框

圆角边框

  • border-top-left-radius 定义了左上角的弧度
  • border-top-right-radius 定义了右上角的弧度
  • border-bottom-right-radius 定义了右下角的弧度
  • border-bottom-left-radius 定义了左下角的弧度
  • border-radius 所有四个边角属性的缩写
div { border:2px solid; border-radius:25px; } 

查看例子:圆角边框

CSS3盒阴影

三个参数:水平偏移,垂直偏移,模糊程度:

div { box-shadow: 10px 10px 5px #888888; } 

CSS3边界图片

div {
	border-image:url(border.png) 30 30 round;
	-webkit-border-image:url(border.png) 30 30 round; /* Safari 5 and older */
	-o-border-image:url(border.png) 30 30 round; /* Opera */
} 

CSS3 背景

CSS3 background-size 属性

background-size指定背景图像的大小。CSS3以前,背景图像大小由图像的实际大小决定。

CSS3中可以指定背景图片,让我们重新在不同的环境中指定背景图片的大小。您可以指定像素或百分比大小。

你指定的大小是相对于父元素的宽度和高度的百分比的大小。

重置背景图像:

div {
	background:url(img_flwr.gif);
	background-size:80px 60px;
	background-repeat:no-repeat;
} 

伸展背景图像完全填充内容区域:

div {
	background:url(img_flwr.gif);
	background-size:100% 100%;
	background-repeat:no-repeat;
} 

CSS3的background-Origin属性

background-Origin属性指定了背景图像的位置区域。

content-box, padding-box,和 border-box区域内可以放置背景图像。

在 content-box 中定位背景图片:

div {
	background:url(img_flwr.gif);
	background-repeat:no-repeat;
	background-size:100% 100%;
	background-origin:content-box;
} 

CSS3 多个背景图像

CSS3 允许你在元素 那个添加多个背景图像。

在 body 元素中设置两个背景图像:

body { background-image:url(img_flwr.gif),url(img_tree.gif); } 

CSS3 渐变(Gradients)

CSS3 线性渐变

background: linear-gradient(direction, color-stop1, color-stop2, ...);

线性渐变 - 从上到下(默认情况下)

下面的实例演示了从顶部开始的线性渐变。起点是红色,慢慢过渡到蓝色:

从上到下的线性渐变:

#grad {
  background: -webkit-linear-gradient(red, blue); /* Safari 5.1 - 6.0 */
  background: -o-linear-gradient(red, blue); /* Opera 11.1 - 12.0 */
  background: -moz-linear-gradient(red, blue); /* Firefox 3.6 - 15 */
  background: linear-gradient(red, blue); /* 标准的语法 */
} 

线性渐变 - 从左到右

下面的实例演示了从左边开始的线性渐变。起点是红色,慢慢过渡到蓝色:

从左到右的线性渐变:

#grad {
  background: -webkit-linear-gradient(left, red , blue); /* Safari 5.1 - 6.0 */
  background: -o-linear-gradient(right, red, blue); /* Opera 11.1 - 12.0 */
  background: -moz-linear-gradient(right, red, blue); /* Firefox 3.6 - 15 */
  background: linear-gradient(to right, red , blue); /* 标准的语法 */
} 

线性渐变 - 对角

你可以通过指定水平和垂直的起始位置来制作一个对角渐变。

下面的实例演示了从左上角开始(到右下角)的线性渐变。起点是红色,慢慢过渡到蓝色:

从左上角到右下角的线性渐变:

#grad {
  background: -webkit-linear-gradient(left top, red , blue); /* Safari 5.1 - 6.0 */
  background: -o-linear-gradient(bottom right, red, blue); /* Opera 11.1 - 12.0 */
  background: -moz-linear-gradient(bottom right, red, blue); /* Firefox 3.6 - 15 */
  background: linear-gradient(to bottom right, red , blue); /* 标准的语法 */
} 

使用角度

如果你想要在渐变的方向上做更多的控制,你可以定义一个角度,而不用预定义方向(to bottom、to top、to right、to left、to bottom right,等等)。 语法

background: linear-gradient(angle, color-stop1, color-stop2);

角度是指水平线和渐变线之间的角度,逆时针方向计算。换句话说,0deg 将创建一个从下到上的渐变,90deg 将创建一个从左到右的渐变。

但是,请注意很多浏览器(Chrome,Safari,fiefox等)的使用了旧的标准,即 0deg 将创建一个从下到上的渐变,90deg 将创建一个从左到右的渐变。换算公式 90 - x = y 其中 x 为标准角度,y为非标准角度。

下面的实例演示了如何在线性渐变上使用角度: 实例

带有指定的角度的线性渐变:

#grad {
  background: -webkit-linear-gradient(180deg, red, blue); /* Safari 5.1 - 6.0 */
  background: -o-linear-gradient(180deg, red, blue); /* Opera 11.1 - 12.0 */
  background: -moz-linear-gradient(180deg, red, blue); /* Firefox 3.6 - 15 */
  background: linear-gradient(180deg, red, blue); /* 标准的语法 */
} 

使用多个颜色结点

下面的实例演示了如何设置多个颜色结点:

带有多个颜色结点的从上到下的线性渐变:

#grad {
  background: -webkit-linear-gradient(red, green, blue); /* Safari 5.1 - 6.0 */
  background: -o-linear-gradient(red, green, blue); /* Opera 11.1 - 12.0 */
  background: -moz-linear-gradient(red, green, blue); /* Firefox 3.6 - 15 */
  background: linear-gradient(red, green, blue); /* 标准的语法 */
}

下面的实例演示了如何创建一个带有彩虹颜色和文本的线性渐变:

#grad {
  /* Safari 5.1 - 6.0 */
  background: -webkit-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet);
  /* Opera 11.1 - 12.0 */
  background: -o-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet);
  /* Firefox 3.6 - 15 */
  background: -moz-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet);
  /* 标准的语法 */
  background: linear-gradient(to right, red,orange,yellow,green,blue,indigo,violet);
}

使用透明度(Transparency)

CSS3 渐变也支持透明度(transparency),可用于创建减弱变淡的效果。

为了添加透明度,我们使用 rgba() 函数来定义颜色结点。rgba() 函数中的最后一个参数可以是从 0 到 1 的值,它定义了颜色的透明度:0 表示完全透明,1 表示完全不透明。

下面的实例演示了从左边开始的线性渐变。起点是完全透明,慢慢过渡到完全不透明的红色:

从左到右的线性渐变,带有透明度:

#grad {
  background: -webkit-linear-gradient(left,rgba(255,0,0,0),rgba(255,0,0,1)); /* Safari 5.1 - 6 */
  background: -o-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /* Opera 11.1 - 12*/
  background: -moz-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /* Firefox 3.6 - 15*/
  background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); /* 标准的语法 */
} 

重复的线性渐变

repeating-linear-gradient() 函数用于重复线性渐变:

一个重复的线性渐变:

#grad {
  /* Safari 5.1 - 6.0 */
  background: -webkit-repeating-linear-gradient(red, yellow 10%, green 20%);
  /* Opera 11.1 - 12.0 */
  background: -o-repeating-linear-gradient(red, yellow 10%, green 20%);
  /* Firefox 3.6 - 15 */
  background: -moz-repeating-linear-gradient(red, yellow 10%, green 20%);
  /* 标准的语法 */
  background: repeating-linear-gradient(red, yellow 10%, green 20%);
} 

CSS3 径向渐变

径向渐变由它的中心定义。

为了创建一个径向渐变,你也必须至少定义两种颜色结点。颜色结点即你想要呈现平稳过渡的颜色。同时,你也可以指定渐变的中心、形状(原型或椭圆形)、大小。默认情况下,渐变的中心是 center(表示在中心点),渐变的形状是 ellipse(表示椭圆形),渐变的大小是 farthest-corner(表示到最远的角落)。

径向渐变的实例:

语法

background: radial-gradient(center, shape size, start-color, ..., last-color);

径向渐变 - 颜色结点均匀分布(默认情况下)

颜色结点均匀分布的径向渐变:

#grad {
  background: -webkit-radial-gradient(red, green, blue); /* Safari 5.1 - 6.0 */
  background: -o-radial-gradient(red, green, blue); /* Opera 11.6 - 12.0 */
  background: -moz-radial-gradient(red, green, blue); /* Firefox 3.6 - 15 */
  background: radial-gradient(red, green, blue); /* 标准的语法 */
} 

径向渐变 - 颜色结点不均匀分布

颜色结点不均匀分布的径向渐变:

#grad {
  background: -webkit-radial-gradient(red 5%, green 15%, blue 60%); /* Safari 5.1 - 6.0 */
  background: -o-radial-gradient(red 5%, green 15%, blue 60%); /* Opera 11.6 - 12.0 */
  background: -moz-radial-gradient(red 5%, green 15%, blue 60%); /* Firefox 3.6 - 15 */
  background: radial-gradient(red 5%, green 15%, blue 60%); /* 标准的语法 */
} 

设置形状

shape 参数定义了形状。它可以是值 circle 或 ellipse。其中,circle 表示圆形,ellipse 表示椭圆形。默认值是 ellipse。

形状为圆形的径向渐变:

#grad {
  background: -webkit-radial-gradient(circle, red, yellow, green); /* Safari 5.1 - 6.0 */
  background: -o-radial-gradient(circle, red, yellow, green); /* Opera 11.6 - 12.0 */
  background: -moz-radial-gradient(circle, red, yellow, green); /* Firefox 3.6 - 15 */
  background: radial-gradient(circle, red, yellow, green); /* 标准的语法 */
} 

不同尺寸大小关键字的使用

size 参数定义了渐变的大小。它可以是以下四个值:

  • closest-side
  • farthest-side
  • closest-corner
  • farthest-corner

带有不同尺寸大小关键字的径向渐变:

#grad1 {
  /* Safari 5.1 - 6.0 */
  background: -webkit-radial-gradient(60% 55%, closest-side,blue,green,yellow,black);
  /* Opera 11.6 - 12.0 */
  background: -o-radial-gradient(60% 55%, closest-side,blue,green,yellow,black);
  /* Firefox 3.6 - 15 */
  background: -moz-radial-gradient(60% 55%, closest-side,blue,green,yellow,black);
  /* 标准的语法 */
  background: radial-gradient(60% 55%, closest-side,blue,green,yellow,black);
}

#grad2 {
  /* Safari 5.1 - 6.0 */
  background: -webkit-radial-gradient(60% 55%, farthest-side,blue,green,yellow,black);
  /* Opera 11.6 - 12.0 */
  background: -o-radial-gradient(60% 55%, farthest-side,blue,green,yellow,black);
  /* Firefox 3.6 - 15 */
  background: -moz-radial-gradient(60% 55%, farthest-side,blue,green,yellow,black);
  /* 标准的语法 */
  background: radial-gradient(60% 55%, farthest-side,blue,green,yellow,black);
} 

重复的径向渐变

repeating-radial-gradient() 函数用于重复径向渐变:

一个重复的径向渐变:

#grad {
  /* Safari 5.1 - 6.0 */
  background: -webkit-repeating-radial-gradient(red, yellow 10%, green 15%);
  /* Opera 11.6 - 12.0 */
  background: -o-repeating-radial-gradient(red, yellow 10%, green 15%);
  /* Firefox 3.6 - 15 */
  background: -moz-repeating-radial-gradient(red, yellow 10%, green 15%);
  /* 标准的语法 */
  background: repeating-radial-gradient(red, yellow 10%, green 15%);
} 

文本效果

CSS3的文本阴影

CSS3中,text-shadow属性适用于文本阴影。

您指定了水平阴影,垂直阴影,模糊的距离,以及阴影的颜色:

给标题添加阴影:

h1 { text-shadow: 5px 5px 5px #FF0000; } 

CSS3的换行

如果某个单词太长,不适合在一个区域内,它扩展到外面:

允许长文本换行:

p {word-wrap:break-word;} 

CSS3 字体

CSS3 @font-face 规则

以前CSS3的版本,网页设计师不得不使用用户计算机上已经安装的字体。

使用CSS3,网页设计师可以使用他/她喜欢的任何字体。

当你发现您要使用的字体文件时,只需简单的将字体文件包含在网站中,它会自动下载给需要的用户。

您所选择的字体在新的CSS3版本有关于@font-face规则描述。

您"自己的"的字体是在 CSS3 @font-face 规则中定义的。

使用您需要的字体

在新的 @font-face 规则中,您必须首先定义字体的名称(比如 myFirstFont),然后指向该字体文件。 lamp 提示:URL请使用小写字母的字体,大写字母在IE中会产生意外的结果

如需为 HTML 元素使用字体,请通过 font-family 属性来引用字体的名称 (myFirstFont):

@font-face { font-family: myFirstFont; src: url(sansation_light.woff); }

div { font-family:myFirstFont; }

使用粗体文本

您必须添加另一个包含粗体文字的@font-face规则:

@font-face {
	font-family: myFirstFont;
	src: url(sansation_bold.woff);
	font-weight:bold;
}

CSS3 字体描述

描述符 描述
font-family name 必需。规定字体的名称。
src URL 必需。定义字体文件的 URL。
font-stretch normal 可选。定义如何拉伸字体。默认是 "normal"。
condensed
ultra-condensed
extra-condensed
semi-condensed
expanded
semi-expanded
extra-expanded
ultra-expanded
font-style normal 可选。定义字体的样式。默认是 "normal"。
italic
oblique
font-weight normal 可选。定义字体的粗细。默认是 "normal"。
bold
100
200
300
400
500
600
700
800
900
unicode-range unicode-range 可选。定义字体支持的 UNICODE 字符范围。默认是 "U+0-10FFFF"。

CSS3 2D转换

translate() 方法

translate()方法,根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动。 实例

div {
	transform: translate(50px,100px);
	-ms-transform: translate(50px,100px); /* IE 9 */
	-webkit-transform: translate(50px,100px); /* Safari and Chrome */
}

translate值(50px,100px)是从左边元素移动50个像素,并从顶部移动100像素。

rotate() 方法

rotate()方法,在一个给定度数顺时针旋转的元素。负值是允许的,这样是元素逆时针旋转。 实例

div {
	transform: rotate(30deg);
	-ms-transform: rotate(30deg); /* IE 9 */
	-webkit-transform: rotate(30deg); /* Safari and Chrome */
}

rotate值(30deg)元素顺时针旋转30度。

scale() 方法

scale()方法,该元素增加或减少的大小,取决于宽度(X轴)和高度(Y轴)的参数: 实例

div {
	transform: scale(2,4);
	-ms-transform: scale(2,4); /* IE 9 */
	-webkit-transform: scale(2,4); /* Safari and Chrome */
}

scale(2,4)转变宽度为原来的大小的2倍,和其原始大小4倍的高度。

skew() 方法

skew()方法,该元素会根据横向(X轴)和垂直(Y轴)线参数给定角度: 实例

div {
	transform: skew(30deg,20deg);
	-ms-transform: skew(30deg,20deg); /* IE 9 */
	-webkit-transform: skew(30deg,20deg); /* Safari and Chrome */
}

skew(30deg,20deg)是绕X轴和Y轴周围20度30度的元素。

matrix() 方法

matrix()方法和2D变换方法合并成一个。

matrix 方法有六个参数,包含旋转,缩放,移动(平移)和倾斜功能。

利用matrix()方法旋转div元素30°

div {
	transform:matrix(0.866,0.5,-0.5,0.866,0,0);
	-ms-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* IE 9 */
	-webkit-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* Safari and Chrome */
} 

2D 转换方法

  • 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 轴。

CSS3 2D转换

rotateX() 方法

rotateX()方法,围绕其在一个给定度数X轴旋转的元素。 实例

div {
	transform: rotateX(120deg);
	-webkit-transform: rotateX(120deg); /* Safari and Chrome */
}

尝试一下 »

rotateY() 方法

rotateY()方法,围绕其在一个给定度数Y轴旋转的元素。 实例

div {
	transform: rotateY(130deg);
	-webkit-transform: rotateY(130deg); /* Safari and Chrome */
} 

转换属性

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

  • transform 向元素应用 2D 或 3D 转换。
  • transform-origin 允许你改变被转换元素的位置。
  • transform-style 规定被嵌套元素如何在 3D 空间中显示。
  • perspective 规定 3D 元素的透视效果。
  • perspective-origin 规定 3D 元素的底部位置。
  • backface-visibility 定义元素在不面对屏幕时是否可见。

3D 转换方法

  • 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。

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

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

  • 指定要添加效果的CSS属性
  • 指定效果的持续时间。

应用于宽度属性的过渡效果,时长为 2 秒:

div {
	transition: width 2s;
	-webkit-transition: width 2s; /* Safari */
}

注意: 如果未指定的期限,transition将没有任何效果,因为默认值是0。

指定的CSS属性的值更改时效果会发生变化。一个典型CSS属性的变化是用户鼠标放在一个元素上时:

规定当鼠标指针悬浮(:hover)于<div>元素上时:

div:hover { width:300px; }

查看例子:过渡



过渡属性

下表列出了所有的过渡属性:

  • transition 简写属性,用于在一个属性中设置四个过渡属性。
  • transition-property 规定应用过渡的 CSS 属性的名称。
  • transition-duration 定义过渡效果花费的时间。默认是 0。
  • transition-timing-function 规定过渡效果的时间曲线。默认是 "ease"。
  • transition-delay 规定过渡效果何时开始。默认是 0。

下面的两个例子设置所有过渡属性: OperaSafariChromeFirefoxInternet Explorer 实例

在一个例子中使用所有过渡属性:

div {
	transition-property: width;
	transition-duration: 1s;
	transition-timing-function: linear;
	transition-delay: 2s;
	/* Safari */
	-webkit-transition-property:width;
	-webkit-transition-duration:1s;
	-webkit-transition-timing-function:linear;
	-webkit-transition-delay:2s;
} 

查看例子:过渡

上面的例子可以简写为:

div {
	transition: width 1s linear 2s;
	/* Safari */
	-webkit-transition:width 1s linear 2s;
} 

CSS3 动画

CSS3 @keyframes 规则

要创建CSS3动画,你将不得不了解@keyframes规则。

@keyframes规则是创建动画。 @keyframes规则内指定一个CSS样式和动画将逐步从目前的样式更改为新的样式。

@keyframes myfirst {
	from {background: red;}
	to {background: yellow;}
}

@-webkit-keyframes myfirst /* Safari and Chrome */ {
	from {background: red;}
	to {background: yellow;}
}

CSS3 动画

当在@keyframe创建动画,把它绑定到一个选择器,否则动画不会有任何效果。

指定至少这两个CSS3的动画属性绑定向一个选择器:

  • 规定动画的名称
  • 规定动画的时长

把 "myfirst" 动画捆绑到 div 元素,时长:5 秒:

div {
	animation: myfirst 5s;
	-webkit-animation: myfirst 5s; /* Safari and Chrome */
}

注意: 您必须定义动画的名称和动画的持续时间。如果省略的持续时间,动画将无法运行,因为默认值是0。

查看例子:动画

CSS3动画是什么?

动画是使元素从一种样式逐渐变化为另一种样式的效果。

您可以改变任意多的样式任意多的次数。

请用百分比来规定变化发生的时间,或用关键词 "from" 和 "to",等同于 0% 和 100%。

0% 是动画的开始,100% 是动画的完成。

为了得到最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器。

当动画为 25% 及 50% 时改变背景色,然后当动画 100% 完成时再次改变:

@keyframes myfirst {
	0%   {background: red;}
	25%  {background: yellow;}
	50%  {background: blue;}
	100% {background: green;}
}

@-webkit-keyframes myfirst /* Safari and Chrome */ {
	0%   {background: red;}
	25%  {background: yellow;}
	50%  {background: blue;}
	100% {background: green;}
}

查看例子:动画

实例

改变背景色和位置:

@keyframes myfirst {
	0%   {background: red; left:0px; top:0px;}
	25%  {background: yellow; left:200px; top:0px;}
	50%  {background: blue; left:200px; top:200px;}
	75%  {background: green; left:0px; top:200px;}
	100% {background: red; left:0px; top:0px;}
}

@-webkit-keyframes myfirst /* Safari and Chrome */ {
	0%   {background: red; left:0px; top:0px;}
	25%  {background: yellow; left:200px; top:0px;}
	50%  {background: blue; left:200px; top:200px;}
	75%  {background: green; left:0px; top:200px;}
	100% {background: red; left:0px; top:0px;}
}

查看例子:动画

CSS3的动画属性

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

  • @keyframes 规定动画。
  • animation 所有动画属性的简写属性,除了 animation-play-state 属性。
  • animation-name 规定 @keyframes 动画的名称。
  • animation-duration 规定动画完成一个周期所花费的秒或毫秒。默认是 0。
  • animation-timing-function 规定动画的速度曲线。默认是 "ease"。
  • animation-delay 规定动画何时开始。默认是 0。
  • animation-iteration-count 规定动画被播放的次数。默认是 1。
  • animation-direction 规定动画是否在下一周期逆向地播放。默认是 "normal"。
  • animation-play-state 规定动画是否正在运行或暂停。默认是 "running"。

下面两个例子设置所有动画属性:

运行myfirst动画,设置所有的属性:

div {
	animation-name: myfirst;
	animation-duration: 5s;
	animation-timing-function: linear;
	animation-delay: 2s;
	animation-iteration-count: infinite;
	animation-direction: alternate;
	animation-play-state: running;
	/* Safari and Chrome: */
	-webkit-animation-name: myfirst;
	-webkit-animation-duration: 5s;
	-webkit-animation-timing-function: linear;
	-webkit-animation-delay: 2s;
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-direction: alternate;
	-webkit-animation-play-state: running;
} 

查看例子:动画

与上面的动画相同,但是使用了简写的动画 animation 属性:

div {
	animation: myfirst 5s linear 2s infinite alternate;
	/* Safari and Chrome: */
	-webkit-animation: myfirst 5s linear 2s infinite alternate;
} 

CSS3 多列

通过 CSS3,您能够创建多个列来对文本进行布局 - 就像报纸那样!

CSS3创建多列

column-count属性指定元素的列数应分为: OperaSafariChromeFirefoxInternet Explorer 实例

划分成三列的div元素的文本:


div { -moz-column-count:3; /* Firefox */ -webkit-column-count:3; /* Safari and Chrome */ column-count:3; }

尝试一下 »

CSS3的指定列之间的差距

column-gap属性指定的列之间的差距:

指定列之间40个像素差距:

div {
	-moz-column-gap:40px; /* Firefox */
	-webkit-column-gap:40px; /* Safari and Chrome */
	column-gap:40px;
}

CSS3列规则

column-rule属性设置列之间的宽度,样式和颜色。

指定列之间的宽度,样式和颜色的规则:

div {
	-moz-column-rule:3px outset #ff00ff; /* Firefox */
	-webkit-column-rule:3px outset #ff00ff; /* Safari and Chrome */
	column-rule:3px outset #ff00ff;
} 

新多列属性

  • column-count 指定元素应分为的列数
  • column-fill 指定如何填充列
  • column-gap 指定列之间差距
  • column-rule 一个用于设置所有列规则的简写属性
  • column-rule-color 指定的列之间颜色规则
  • column-rule-style 指定的列之间的样式规则
  • column-rule-width 指定的列之间的宽度规则
  • column-span 指定一个元素应该横跨多少列
  • column-width 指定列的宽度
  • columns 缩写属性设置列宽和列数

CSS3 用户界面

在 CSS3 中, 增加了一些新的用户界面特性来调整元素尺寸,框尺寸和外边框。

在本章中,您将了解以下的用户界面属性:

  • resize
  • box-sizing
  • outline-offset

CSS3 调整尺寸(Resizing)

CSS3中,resize属性指定一个元素是否应该由用户去调整大小。 这个 div 元素由用户调整大小。 (在 Firefox 4+, Chrome, 和 Safari中)

CSS代码如下:

由用户指定一个div元素尺寸大小:

div { resize:both; overflow:auto; } 

CSS3 方框大小调整(Box Sizing)

box-sizing 属性允许您以确切的方式定义适应某个区域的具体内容。

规定两个并排的带边框方框:

div {
	box-sizing:border-box;
	-moz-box-sizing:border-box; /* Firefox */
	width:50%;
	float:left;
} 

CSS3 外形修饰(outline-offset )

outline-offset 属性对轮廓进行偏移,并在超出边框边缘的位置绘制轮廓。

轮廓与边框有两点不同:

  1. 轮廓不占用空间
  2. 轮廓可能是非矩形

这个 div 在边框之外 15 像素处有一个轮廓。

The CSS code is as follows: 实例

规定边框边缘之外 15 像素处的轮廓:

div {
	border:2px solid black;
	outline:2px solid red;
	outline-offset:15px;
} 

新的用户界面特性

  1. appearance 允许您使一个元素的外观像一个标准的用户界面元素
  2. box-sizing 允许你以适应区域而用某种方式定义某些元素
  3. icon Provides the author the ability to style an element with an iconic equivalent
  4. nav-down 指定在何处使用箭头向下导航键时进行导航
  5. nav-index 指定一个元素的Tab的顺序
  6. nav-left 指定在何处使用左侧的箭头导航键进行导航
  7. nav-right 指定在何处使用右侧的箭头导航键进行导航
  8. nav-up 指定在何处使用箭头向上导航键时进行导航
  9. outline-offset 外轮廓修饰并绘制超出边框的边缘
  10. resize 指定一个元素是否是由用户调整大小