CSS系列篇:CSS3的常见属性

html-css013

CSS系列篇:CSS3的常见属性,第1张

过渡使用 trainsition 属性,让元素的样式变化,不再瞬间完成,而是可以设定时间,在时间段内逐渐完成。

对单独的div元素做分别做设置进行属性说明:

1、设置在3秒内完成颜色的变化

2、可以分别对不同的属性分开做时间长度的设定,记得用逗号隔开

3、延迟delay:想在某个属性开始执行样式变化后的多少秒,才让另一个属性开始进行样式的动态变化,就可以使用延迟。用法就是:

2s 1s width ,意思就是在高度开始发生变化后的1s后,width的宽度才开始展现变化,然后在2s内完成宽度从30px到60px的变化。

delay的真正意义在于,它指定了动画发生的顺序,使得多个不同的transition可以连在一起,形成复杂效果

3、变化的速度:默认不设定,就是逐渐放慢的,默认值是ease

还可以额外指定设置:

linear:匀速

ease-in:加速

ease-out:减速

上述的三个情况,可以综合写为:

对应的变化就是,div的宽度瞬间变化为60px,然后高度在宽度变化后的1s之后才开始发生变化,在3秒内逐渐加速完成。

重点:

兼容性:各大浏览器基本已经支持无前缀的transition,所以可以直接使用不加前缀;

transition的变化设置,是只对有明确数值设置变化的,对于none,block这类的文字描述无效;

有效性:transition是一次性的,无法重复,除非反复触发。

1、相比于过渡属性transition的设置,动画animation的实现支持更为复杂的动态样式效果。

对单独的div元素做分别做设置进行属性说明:

1、使用animation动画属性,最重要的就是配合有“关键帧”——@keyframes

样式设置如下:

这样的设置,就是将1s分为3帧,每帧显示不同的背景颜色,然后动画效果只显示1次。

注意动画执行完成之后,就恢复元素原来定义的样式设置,如果原来没有这个样式的定义,那也是动画执行完成后恢复没有的状态。

@keyframes的写法比较松泛:

0%等同于from,100%等同于to:

如上面的写法就等同于:

下面的关键帧的写法也是有效的:

当然,(1)也是有延迟效果的设置:设置延迟多少秒后执行动画

(2)每帧之间是平滑过渡的,当然也可以设置为分步过渡,这样就有卡顿的效果:

解释:该动画,在停留1秒后开始执行,执行3次,每次执行时间为2秒,在2秒时间执行完成rainbow定义的关键帧样式,然后分步执行,有卡顿效果。

2、动画持续:动画效果默认只播放一次,加入infinite关键字,可以让动画无限次播放

3、指定动画播放的次数,直接写数值:

4、如果想要让动画结束后,停留在结束状态的样式,而不是默认变为起始状态,就可以添加关键字:

animation-fill-mode属性:

none:默认值,回到动画没开始时的状态

forwards:让动画停留在结束状态

backwards:让动画回到第一帧的状态

4、如果想要将帧数的设置,反向执行,就可以使用animation-direction属性:

normal:动画循环播放时,每次都是从结束状态跳回到起始状态,再开始播放

reverse:动画执行,先从结束帧的样式执行跳回到起始帧的样式。例如:

所有的transform属性设置,都不会改变元素占据的位置,还是保留的

1、旋转rotate

通过rotate设置旋转角度,来旋转元素

以div元素为例:

···

<body>

<div class="transform"></div>

</body>

···

2、位移translate

设置X轴、Y轴方向的位移值

设置X轴方向的位移值

设置Y轴方向的位移值

3、缩放scale

设置元素水平方向和垂直方向同时缩放

设置元素水平方向缩放

设置元素垂直方向缩放

只设置一个参数,设置元素水平方向和垂直方向,同一比例同时缩放

4、扭曲:skew,设置元素的平面XY轴的扭曲角度

设置元素X轴,Y轴的扭转角度

只设置一个参数,元素X轴,Y轴的扭转角度相同

设置元素X轴的扭转角度

设置元素Y轴的扭转角度

css2.1中,颜色的表示方法有三种:(1)单词;(2)rgb表示法(十进制表示法);(3)十六进制表示法。

能够用英语单词来表述的颜色,都是简单颜色。

红色:background-color: red

红色:background-color:rgb(255,0,0);

rgb(red、green、blue)表示三原色“红”“绿”“蓝”。光学显示器,每个像素都是由三原色的发光原件组成的,靠明亮度不同调成不同的颜色。

用逗号隔开r,g,b的值,每个值的取值范围是0~255,一共256个值。

如果此项的值是255,那么就说明是纯色:

绿色:background-color:rgb(0,255,0)

蓝色:background-color:rgb(0,0,255)

黑色:background-color:rgb(0,0,0)

白色:background-color:rgb(255,255,255)

颜色可以叠加,比如黄色就是红色和黄色的叠加:

黄色:background-color:rgb(255,255,0)

紫色:background-color:rgb(255,0,255)

青色:background-color:rgb(0,255,255)

红色:background-color:#ff0000;

所有用#开头的值,都是16进制的。

#ff0000(ff表示r,00表示g,00表示b)

16进制表示法和rgb类似,也是两位两位的看,但是没有逗号隔开。

上述红色表示法中:ff就是10进制的255,00就是十进制的0,所以#ff0000相当于(255,0,0)

十六进制对照表:

任何一种十六进制表示法都能够换算成rgb表示法。也就是说,两个表示法能表示的颜色数量一样多,十六进制能够简化成3位,所有#rrggbb的形式,都可以写成#rgb;

比如,上述的红色可以写成background-color:#f00;

但是,如果要采用简化的方法,必须满足rrggbb格式才行。

几个特殊的要记住:

黑:#000

白:#fff

红:#f00

灰:#333

深灰:#222

浅灰:#ccc

background-image属性用于给盒子加上背景图片:

background-image:url(images/1.jpg)

url()表示网址。、

images/1.jpg就是相对路径。

背景会默认循环,平铺满整个盒子,padding的区域也会有背景图。

background-repeat属性用来设置背景图是否重复以及重复方式。

“repeat”表示“重复”。

默认为铺满,不用设置。

不重复:background-repeat:no-repeat;

横向重复:background-repeat:repeat-x;

纵向重复:background-repeat:repeat-y;

background-position:背景定位属性。

格式:background-position:向右移动量(100px) 向下移动量(200px)

向上向左移只需把移动量改成负数即可。

css精灵又叫“css雪碧”技术,是一种css图像拼合技术,该方法是将小图标和图像合并到一张图上,然后利用css背景定位来显示需要显示的图片部分。

css精灵的优点,就是减少了http请求。比如4张小图片,原本需要4个http请求。但是用了css精灵,小图片变为了一张图,http请求只有1个了。

background-position:描述左右的词 描述上下的词;

比如:background-position:right bottom:(右下角)

background-position:center center;(居中)

背景固定属性。

格式:background-attachment:fixed;

背景就会被固定住,不会被滚动条滚走。

background属性和border一样,是一个综合属性:

background:red url(1.jpg) no-repeat 100px 100px fixed;

等价于:

background-color:red;

background-image:url(1.jpg);

background-repeat:no-repeat;

background-position:100px 100px;

background-attachment:fixed;

可以任意省略部分:

background:red;