美文网首页
css3学习 第二天

css3学习 第二天

作者: 罗_c857 | 来源:发表于2019-11-18 13:19 被阅读0次

    CSS3 2D 转换

    CSS3 转换

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

    它是如何工作?

    转换的效果是让某个元素改变形状,大小和位置。

    2D 转换

    translate()

    rotate()

    scale()

    skew()

    matrix()

    实例
    div

    {

    transform: rotate(30deg);

    -ms-transform: rotate(30deg); /* IE 9 */

    -webkit-transform: rotate(30deg); /* Safari and Chrome */

    }

    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轴)的参数:

    实例

    -ms-transform: scale(2,3); /* IE 9 */

    -webkit-transform: scale(2,3); /* Safari */

    transform: scale(2,3); /* 标准语法 */

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

    skew() 方法

    语法

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

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

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

    skewY(<angle>);表示只在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 */

    }

    新转换属性

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

    Property描述CSS

    transform                  适用于2D或3D转换的元素         3

    transform-origin        允许您更改转化元素位置            3

    CSS3 3D 转换

    3D 转换

    CSS3 允许您使用 3D 转换来对元素进行格式化。

    3D 转换方法:

    rotateX()

    rotateY()

    rotateX() 方法

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

    实例

    div

    {

    transform: rotateX(120deg);

    -webkit-transform: rotateX(120deg); /* Safari 与 Chrome */

    }

    rotateY() 方法

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

    实例

    div

    {

            transform: rotateY(130deg);

            -webkit-transform: rotateY(130deg); /* Safari 与 Chrome */

    }

    转换属性

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

    属性描述CSS

    transform                    向元素应用 2D 或 3D 转换。                            3

    transform-origin           允许你改变被转换元素的位置。                      3

    transform-style            规定被嵌套元素如何在 3D 空间中显示。         3

    perspective                规定 3D 元素的透视效果。                                3

    perspective-origin        规定 3D 元素的底部位置。                               3

    backface-visibility        定义元素在不面对屏幕时是否可见。                 3

    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;

    }

    注意: 当鼠标光标移动到该元素时,它逐渐改变它原有样式

    多项改变

    要添加多个样式的变换效果,添加的属性由逗号分隔:

    添加了宽度,高度和转换效果:

    div

    {

    transition: width 2s, height 2s, transform 2s;

    -webkit-transition: width 2s, height 2s, -webkit-transform 2s;

    }

    过渡属性

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

    属性描述                                                                                                                    CSS

    transition                                简写属性,用于在一个属性中设置四个过渡属性。        3

    transition-property                    规定应用过渡的 CSS 属性的名称。                            3    

    transition-duration                    定义过渡效果花费的时间。默认是 0。                        3

    transition-timing-function        规定过渡效果的时间曲线。默认是 "ease"。                 3

    transition-delay                        规定过渡效果何时开始。默认是 0。                            3

    实例

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

    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;

    }

    与上面的例子相同的过渡效果,但是使用了简写的 transition 属性:

    div

    {

    transition: width 1s linear 2s;

     /* Safari */

    -webkit-transition:width 1s linear 2s;

    }

    CSS3 动画

    CSS3 可以创建动画,它可以取代许多网页动画图像、Flash 动画和 JavaScript 实现的效果。

    CSS3 @keyframes 规则

    要创建 CSS3 动画,你需要了解 @keyframes 规则。

    实例

    @keyframes myfirst

    {

    from {background: red;}

    to {background: yellow;}

    }

    @-webkit-keyframes myfirst /* Safari 与 Chrome */

    {

    from {background: red;}

    to {background: yellow;}

    }

    @keyframes 规则是创建动画。

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

    CSS3 动画

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

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

    规定动画的名称

    规定动画的时长

    实例

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

    div

    {

    animation: myfirst 5s;

    -webkit-animation: myfirst 5s; /* Safari 与 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 与 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 与 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;}

    }

    运行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 与 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 与 Chrome: */

    -webkit-animation: myfirst 5s linear 2s infinite alternate;

    }

    相关文章

      网友评论

          本文标题:css3学习 第二天

          本文链接:https://www.haomeiwen.com/subject/aigvictx.html