20、css3动画

CSS3的重要模块:

选择器、盒模型、背景和边框、文字特效、2D/3D转换、动画、多列布局、用户界面

1、边框:圆角、盒阴影、边界图片

border-radius: 1px;设置边框的圆角为1px

box-shadow: 10px 10px 5px #CCC;设置x轴、y轴偏移量为10px,宽度为5px,颜色为#CCC的阴影

border-image的兼容写法:Internet Explorer 不支持 border-image 属性。

-webkit-border-image: url(border.png) 30 30 round; /* Safari 5 and older */

-o-border-image: url(border.png) 30 30 round; /* Opera */

border-image: url(border.png) 30 30 round;

2、背景图片

background: url(img_flwr.gif) right bottom no-repeat;

background-image:url(图片地址);

background-position:

background-size:

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

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

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

background-origin: content-box | padding-box | border-box;

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

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

background-clip: content-box | padding-box | border-box;

background-clip背景剪裁属性是从指定位置开始绘制

background-repeat:no-repeat | repeat;

不同的背景图像和图像用逗号隔开,所有的图片中显示在最顶端的为第一张。

background-image: url(img_flwr.gif), url(paper.gif);

3、渐变(Gradients)

1)线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向

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

background-image: linear-gradient(#e66465, #9198e5);

background: linear-gradient(#e66465, #9198e5);

线性渐变 - 从左到右:

background-image: linear-gradient(to right, #e66465, #9198e5);

background: linear-gradient(to right, #e66465, #9198e5);

线性渐变 - 对角:

background-image: linear-gradient(to bottom right, #e66465, #9198e5);

background: linear-gradient(to bottom right, #e66465, #9198e5);

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

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

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

图3.1

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

使用多个颜色节点:

background-image: linear-gradient(red, yellow, green);

background: linear-gradient(red, yellow, green);

使用透明度(transparent):颜色采用rgba(255,255,255,0.1)--最后一项是透明度。

重复的线性渐变:

background-image: repeating-linear-gradient(red, yellow 10%, green 20%);

background: repeating-linear-gradient(red, yellow 10%, green 20%);

2)径向渐变(Radial Gradients)- 由它们的中心定义

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

语法:background-image: radial-gradient(shape size at position, start-color, ..., last-color);

颜色节点均匀分布的径向渐变:background-image: radial-gradient(red, yellow, green);

径向渐变 - 颜色节点不均匀分布:background-image: radial-gradient(red 5%, yellow 15%, green 60%);

设置形状:background-image: radial-gradient(circle, red, yellow, green);

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

closest-side、farthest-side、closest-corner、farthest-corner

background-image: radial-gradient(closest-side at 60% 55%, red, yellow, black);

重复的径向渐变:

background-image: repeating-radial-gradient(red, yellow 10%, green 15%);

background: repeating-radial-gradient(red, yellow 10%, green 15%);

4、 文本效果

1)text-shadow:文本阴影

text-shadow: 5px 5px 5px #FF0000;

2)box-shadow:盒阴影

box-shadow: 10px 10px 5px #888888;

3)text-overflow:文本溢出属性指定应向用户如何显示溢出内容

(1) text-overflow:ellipsis;// 文本超出显示...

(1)单行文本溢出显示省略号

overflow:hidden;

white-space:nowrap;

text-overflow:ellipsis;

(2)多行文本溢出显示省略号

display:-webkit-box;//将对象作为弹性伸缩盒子模型显示

-webkit-box-orient:vertical; // 设置或检索伸缩盒对象的子元素的排列方式

-webkit-line-clamp:2; // 限制在一个块元素显示的文本的行数

overflow:hidden;

text-overflow:ellipsis;

(2) text-overflow:clip; // 直接截断

4)word-wrap:换行

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

CSS3中,自动换行属性允许您强制文本换行 - 即使这意味着分裂它中间的一个字。

允许长文本换行:word-wrap:break-word;

5)word-break:单词拆分换行

(1) word-break:keep-all; // 不拆分单词

(2) word-break:break-all; // 拆分单词

注意: word-break 属性不兼容 Opera.

图4.1

5、字体

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

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

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

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

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

图5.1

注意: Internet Explorer 9 只支持 .eot 格式的字体.

使用粗体文本:font-weight:bold;

@font-face规则定义:

图5.2
图5.3

6、2D 转换transform:CSS3 转换可以对元素进行移动、缩放、转动、拉长或拉伸。

transform和transform-origin

注意: -webkit-, -ms- 或 -moz- 前缀

图6.1

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

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

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

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

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

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

4)skew():transform:skew(<angle> [,<angle>]);

包含两个参数值,分别表示X轴和Y轴倾斜的角度,如果第二个参数为空,则默认为0,参数为负表示向相反方向倾斜。

skewX(<angle>);表示只在X轴(水平方向)倾斜。

skewY(<angle>);表示只在Y轴(垂直方向)倾斜。

skew(30deg,20deg) 元素在X轴和Y轴上倾斜20度30度。

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

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

图6.1


图6.2

7、3D 转换 transform

图7.1
图7.2

8、过渡transition

CSS3中,我们为了添加某种效果可以从一种样式转变到另一个的时候,无需使用Flash动画或JavaScript。

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

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

1)指定要添加效果的CSS属性

2)指定效果的持续时间。

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

图8.1
图8.2
图8.3
图8.4
图8.5

9、 动画  @keyframes

注意:-webkit-, -ms- 或 -moz-  前缀

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

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

1)规定动画的名称

2)规定动画的时长

图9.1
图9.2

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

CSS3动画是什么?

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

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

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

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

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

图9.3
图9.4
图9.5
图9.6

10、

11、

12、

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容