链接地址:http://www.w3school.com.cn/css3/index.asp
css3兼容以前的css版本。
css3中主要的边框属性有:border-image, border-radius, box-shadow。
- IE9+支持border-radius, box-shadow属性。
- FireFox, Chorme和Safari支持所有的新的边框属性。
- 对于border-image属性Safari5及以前的版本要加上-webkit-。
- Opera 支持border-radius, box-shadow,但是对于border-image要加前缀-o-。
用border-radius属性来设置。
div
{
border:2px solid;
border-radius:25px;
-moz-border-radius:25px; /* Old Firefox */
}
用box-shadow属性来设置。
div
{
box-shadow: 10px 10px 5px #888888;
}
用border-image属性来设置。
div
{
border-image:url(border.png) 30 30 round;
-moz-border-image:url(border.png) 30 30 round; /* 老的 Firefox */
-webkit-border-image:url(border.png) 30 30 round; /* Safari 和 Chrome */
-o-border-image:url(border.png) 30 30 round; /* Opera */
}
属性 | 描述 |
---|---|
border-radius | 设置所有四个 border-*-radius 属性的简写属性 |
border-image | 设置所有 border-image-* 属性的简写属性 |
box-shadow | 向边框添加一个或多个阴影 |
背景主要增加 background-size和background-origin两个属性。
用background-size属性来定义。
值 | 描述 |
---|---|
length | 设置背景图片的宽度和高度。第一个值设置宽度,第二个值设置高度,如果只设置了一个值,那么高度值是auto |
percentage | 以父元素的百分比来设置宽度和高度 |
cover | 将背景图像扩展至足够大,以使背景图片覆盖背景区域。背景图片的某些部分也许无法显示在背景图片的定位区域中 |
contain | 将背景图像扩展到最大区域,使得宽度和高度完全适应内容区域 |
div
{
background:url(bg_flower.gif);
-moz-background-size:63px 100px; /* 老版本的 Firefox */
background-size:63px 100px;
background-repeat:no-repeat;
}
div
{
background:url(bg_flower.gif);
-moz-background-size:40% 100%; /* 老版本的 Firefox */
background-size:40% 100%;
background-repeat:no-repeat;
}
用background-origin属性来定义。
值 | 描述 |
---|---|
padding-box | 背景图像相对于内边框定位 |
border-box | 背景图像相对于边框定位 |
content-box | 背景图像相对于内容定位 |
div{
background-image: url(test.png);
background-repeat: no-repeat;
background-size: 100% 100%;
-webkit-background-origin: content-box; /*Safari*/
background-origin: content-box;
}
用background-clip属性来定义。
值 | 描述 |
---|---|
border-box | 背景被剪裁到边框盒 |
padding-box | 背景被剪裁到内边距盒 |
content-box | 背景被剪裁到内容盒 |
属性 | 描述 |
---|---|
background-clip | 规定背景绘制区域 |
background-origin | 规定背景定位区域 |
background-size | 规定背景尺寸 |
用text-shadow属性来定义。
值 | 描述 |
---|---|
h-shadow | 必需。水平阴影位置,可以为负值 |
v-shadow | 必需。垂直阴影位置,可以为负值 |
blur | 可选,模糊的距离 |
color | 可选,阴影的颜色 |
DOCTYPE html>
<html>
<head>
<style>
h1 {text-shadow:2px 2px 8px #FF0000;}
style>
head>
<body>
<h1>模糊效果的文本阴影!h1>
body>
html>
用word-wrap属性允许长单词换行。
值 | 描述 |
---|---|
normal | 只在允许的断字点换行 |
break-word | 在长单词或url内部换行 |
属性 | 描述 |
---|---|
text-shadow | 向文本添加阴影 |
word-wrap | 允许对长不可分割的单词进行分割,并换行到下一行 |
css3我们可以对元素进行移动、缩放、转动、拉长或拉伸。
元素从当前位置移动到给定坐标位置。
div
{
transform: translate(50px,100px);
-ms-transform: translate(50px,100px); /* IE 9 */
-webkit-transform: translate(50px,100px); /* Safari and Chrome */
-o-transform: translate(50px,100px); /* Opera */
-moz-transform: translate(50px,100px); /* Firefox */
}
通过rotate方法,元素顺时针旋转指定角度,为负值的时候,逆时针旋转指定角度。
div
{
transform: rotate(30deg);
-ms-transform: rotate(30deg); /* IE 9 */
-webkit-transform: rotate(30deg); /* Safari and Chrome */
-o-transform: rotate(30deg); /* Opera */
-moz-transform: rotate(30deg); /* Firefox */
}
通过scale,元素增加或减少指定数字。
div
{
transform: scale(2,4);
-ms-transform: scale(2,4); /* IE 9 */
-webkit-transform: scale(2,4); /* Safari 和 Chrome */
-o-transform: scale(2,4); /* Opera */
-moz-transform: scale(2,4); /* Firefox */
}
通过skew,元素翻转指定的角度。
div
{
transform: skew(30deg,20deg);
-ms-transform: skew(30deg,20deg); /* IE 9 */
-webkit-transform: skew(30deg,20deg); /* Safari and Chrome */
-o-transform: skew(30deg,20deg); /* Opera */
-moz-transform: skew(30deg,20deg); /* Firefox */
}
通过matrix,集合使用元素的所有2D方法(包括旋转、缩放、移动以及倾斜元素)。
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 */
-moz-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* Firefox */
-webkit-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* Safari and Chrome */
-o-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* Opera */
}
属性 | 描述 |
---|---|
transform | 向元素应用2D或3D转换 |
transform-origin | 允许你改变被转换元素的位置 |
2D Transfro方法
方法 | 描述 |
---|---|
matrix(n,n,n,n,n,n) | 定义2D转换,允许使用6个值的转换 |
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轴 |
元素围绕X轴以指定角度旋转。
div
{
transform: rotateX(120deg);
-webkit-transform: rotateX(120deg); /* Safari 和 Chrome */
-moz-transform: rotateX(120deg); /* Firefox */
}
元素围绕y轴以制动角度旋转
div{
transform: rotateY(120deg);
-webkit-transform: rotateY(120deg);
-moz-transform: rotateY(120deg);
}
用transition属性来定义。
用来规定过渡属性的名称。
值 | 描述 |
---|---|
none | 没有属性应用过渡 |
all | 所有属性都将应用过渡效果 |
property | 应用过渡效果的属性的名称,用,分割 |
用trasition-duration属性来定义。
值 | 描述 |
---|---|
time | 规定完成过渡效果需要花费的时间,默认值为0, 即没有过渡效果 |
用来规定完成过渡效果的时间曲线。
值 | 描述 |
---|---|
linear | 规定以相同的速度完成过渡效果,从开始到结束(等于 cubic-bezier(0,0,1,1)) |
ease | 规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1)) |
ease-in | 慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1)) |
ease-out | 慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1)) |
ease-in-out | 慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1)) |
cubic-bezier(n,n,n,n) | n可以是0~1间的值 |
用来规定过渡效果什么时候开始。
值 | 描述 |
---|---|
time | 规定在过渡效果开始之前需要等待的时间,以秒或毫秒计 |
div
{
transition-property: width;
transition-duration: 1s;
transition-timing-function: linear;
transition-delay: 2s;
/* Firefox 4 */
-moz-transition-property:width;
-moz-transition-duration:1s;
-moz-transition-timing-function:linear;
-moz-transition-delay:2s;
/* Safari 和 Chrome */
-webkit-transition-property:width;
-webkit-transition-duration:1s;
-webkit-transition-timing-function:linear;
-webkit-transition-delay:2s;
/* Opera */
-o-transition-property:width;
-o-transition-duration:1s;
-o-transition-timing-function:linear;
-o-transition-delay:2s;
}
属性 | 描述 |
---|---|
transition | 过渡属性。在它中设置4个过渡属性 |
transition-property | 规定应用过渡属性的名称 |
transition-duration | 规定过渡属性花费的时间,默认值为0 |
transition-timing-function | 规定过渡效果的时间曲线,默认值是ease |
transition-delay | 规定过渡效果何时开始。默认值是0 |
通过@keyframes可以创建动画,动画就是将一种css风格转换为另外一种css风格。
@keyframes animationname {keyframes-selector {css-styles;}}
参数 | 描述 |
---|---|
animationname | 必需。定义的动画的名称 |
keyframes-selector | 定义动画的时长比。合法值: 0~100%或from或to |
css-styles | 一个或多个合法的css样式 |
@keyframes mymove
{
0% {top:0px;}
25% {top:200px;}
50% {top:100px;}
75% {top:200px;}
100% {top:0px;}
}
@-moz-keyframes mymove /* Firefox */
{
0% {top:0px;}
25% {top:200px;}
50% {top:100px;}
75% {top:200px;}
100% {top:0px;}
}
@-webkit-keyframes mymove /* Safari 和 Chrome */
{
0% {top:0px;}
25% {top:200px;}
50% {top:100px;}
75% {top:200px;}
100% {top:0px;}
}
@-o-keyframes mymove /* Opera */
{
0% {top:0px;}
25% {top:200px;}
50% {top:100px;}
75% {top:200px;}
100% {top:0px;}
}
@keyframes mymove
{
0% {top:0px; background:red; width:100px;}
100% {top:200px; background:yellow; width:300px;}
}
@-moz-keyframes mymove /* Firefox */
{
0% {top:0px; background:red; width:100px;}
100% {top:200px; background:yellow; width:300px;}
}
@-webkit-keyframes mymove /* Safari 和 Chrome */
{
0% {top:0px; background:red; width:100px;}
100% {top:200px; background:yellow; width:300px;}
}
@-o-keyframes mymove /* Opera */
{
0% {top:0px; background:red; width:100px;}
100% {top:200px; background:yellow; width:300px;}
}
用animation属性来定义。
animation: name duration timing-function delay iteration-count direction;
为动画规定一个名称。
值 | 描述 |
---|---|
keyframename | 规定需要绑定到选择器的名称 |
none | 规定无动画效果 |
用来定义动画持续时间。
值 | 描述 |
---|---|
time | 规定动画花费的时间。默认值是0,也就是没有动画效果 |
用来规定完成动画效果的时间曲线。
值 | 描述 |
---|---|
linear | 规定以相同的速度完成动画效果,从开始到结束(等于 cubic-bezier(0,0,1,1)) |
ease | 规定慢速开始,然后变快,然后慢速结束的动画效果(cubic-bezier(0.25,0.1,0.25,1)) |
ease-in | 慢速开始的动画效果(等于 cubic-bezier(0.42,0,1,1)) |
ease-out | 慢速结束的动画效果(等于 cubic-bezier(0,0,0.58,1)) |
ease-in-out | 慢速开始和结束的动画效果(等于 cubic-bezier(0.42,0,0.58,1)) |
cubic-bezier(n,n,n,n) | n可以是0~1间的值 |
用来规定动画的延迟时间。
值 | 描述 |
---|---|
time | 定义动画开始前的等待时间,以秒或毫秒计 |
用来规定动画播放的次数。
值 | 描述 |
---|---|
n | 定义动画播放的次数 |
infinite | 规定动画无限次播放 |
用来规定动画是正向播放还是反向播放。
值 | 描述 |
---|---|
normal | 默认值。应该正常播放 |
alternate | 应该反向播放 |
规定动画是运行还是暂停。
值 | 描述 |
---|---|
paused | 动画暂停 |
running | 动画正在播放 |
规定动画播放前或播放后,动画效果是否可见。
值 | 描述 |
---|---|
none | 不改变默认行为 |
forwards | 动画完成后保持最后一个属性值 |
backwards | 在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义) |
both | 向前和向后填充模式都被应用 |
属性 | 描述 |
---|---|
@keyframes | 规定动画 |
animation | 所有动画的简写模式,除了animation-play-state |
animation-name | 规定动画名称 |
animation-duration | 动画持续时间 |
animation-timing-function | 规定动画的速度曲线。默认是“ease” |
animation-delay | 规定动画何时开始。默认值是0 |
animation-iteration-count | 规定动画的播放次数。默认是1 |
animation-direction | 规定动画在下一周期逆向播放。默认是normal |
animation-play-state | 规定动画是否正在运行或暂停。默认值是running |
animation-fill-mode | 规定元素动画时间之外的状态 |
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;
/* Firefox: */
-moz-animation-name: myfirst;
-moz-animation-duration: 5s;
-moz-animation-timing-function: linear;
-moz-animation-delay: 2s;
-moz-animation-iteration-count: infinite;
-moz-animation-direction: alternate;
-moz-animation-play-state: running;
/* Safari 和 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;
/* Opera: */
-o-animation-name: myfirst;
-o-animation-duration: 5s;
-o-animation-timing-function: linear;
-o-animation-delay: 2s;
-o-animation-iteration-count: infinite;
-o-animation-direction: alternate;
-o-animation-play-state: running;
}
规定元素被分割的列数。
值 | 描述 |
---|---|
number | 元素内容将被划分的最佳列数 |
auto | 由其它属性决定。如:column-width |
规定如何填充列。
值 | 描述 |
---|---|
balance | 对列进行协调,浏览器应对列长度的差异进行最小化处理 |
auto | 按顺序对列进行填充,列长度各有不同 |
规定列间隔。
值 | 描述 |
---|---|
length | 将列间隔设置为指定长度 |
normal | 规定列间隔为一个指定的间隔 |
简写属性。规定一个列属性的简写,包含column-rule-color, column-rule-style, column-rule-width。
定义列之间的颜色。取值同css的color。
规定列之间的样式规则。
值 | 描述 |
---|---|
none | 没有规则 |
hidden | 定义隐藏规则 |
dotted | 定义点状规则 |
dashed | 定义虚线规则 |
solid | 定义实线规则 |
double | 定义双线规则 |
grooved | 定义3D grooved规则。该效果取决于宽度和颜色值 |
ridge | 定义3D ridge规则。该效果取决于宽度和颜色值 |
inset | 定义3D inset规则。该效果取决于宽度和颜色值 |
outset | 定义3D outset规则。该效果取决于宽度和颜色值 |
定义列之间的规则宽度。
值 | 描述 |
---|---|
thin | 定义纤细规则 |
medium | 定义中等规则 |
thick | 定义宽厚规则 |
length | 定义规则的宽度 |
定义元素跨多少列。
值 | 描述 |
---|---|
1 | 元素应该横跨一列 |
all | 元素应该横跨所有列 |
定义宽度和数量的简写。
语法: columns: column-width column-count;
属性 | 描述 |
---|---|
column-count | 定义元素应该被分割的列 |
column-fill | 定义元素如何被填充 |
column-gap | 规定列之间的间隔 |
column-rule | 所有column-rule-*属性的简写 |
column-span | 规定列应该横跨的列数 |
column-width | 规定列的宽度 |
columns | column-width和column-count的简写 |
新的用户界面特性包括重设元素尺寸、盒尺寸以及轮廓等。
值 | 描述 |
---|---|
normal | 将元素定义为常规元素 |
icon | 将元素定义为图标 |
window | 将元素呈现为视口 |
button | 将元素呈现为button |
menu | 将元素呈现为一套供用户选择的选项 |
field | 将元素呈现为输入字段 |
允许以特定的方式定义匹配某个区域的元素。
值 | 描述 |
---|---|
content-box | 由css2.1定义的宽度和高度。宽度和高度定义到元素的内容,在宽度和高度外绘制元素的内边框和边距 |
border-box | 为元素设定的宽度和高度决定了元素的边框盒。为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。 |
inherit | 从父元素继承属性 |
outline-offset 属性对轮廓进行偏移,并在边框边缘进行绘制。
与边框的区别:
* 轮廓不占用空间。
* 轮廓可能是非矩形。
属性 | 描述 |
---|---|
appearance | 允许将元素设置为标准用户界面元素的外观 |
box-sizing | 允许您以确切的方式定义适应某个区域的具体内容 |
outline-offset | 对轮廓进行偏移,并在边框边缘进行绘制轮廓 |