css3的常用变形方法有哪些?写出核心代码

html-css06

css3的常用变形方法有哪些?写出核心代码,第1张

css3中的变形

Chrome和safai需前缀加-webkit-,Foxfire需加前缀-moz-

1,旋转 rotate()

div{

width: 300px

height: 300px

transform:rotate(20deg)

}

2,扭曲 skew()

div {

width: 300px

height: 300px

transform:skew(45deg,-10deg)

}

3,缩放 scale()

scale(X,Y)使元素水平方向和垂直方向同时缩放(也就是X轴和Y轴同时缩放)

也可以只缩放 x轴,或只缩放y轴。

div {

width: 200px

height: 200px

background: orange

}

.wrapper div:hover {

opacity: .5

transform: scale(0.8)

}

4,位移 translate()

translate()函数可以将元素向指定的方向移动,类似于position中的relative。

或以简单的理解为,使用translate()函数,可以把元素从原来的位置移动,

而不影响在X、Y轴上的任何Web组件。

5,原点 transform-origin

CSS变形进行的旋转、位移、缩放,扭曲等操作都是以元素自己中心位置进行变形。

但很多时候,我们可以通过transform-origin来对元素进行原点位置改变,使元素

原点不在元素的中心位置,以达到需要的原点位置。

div {

transform: skew(45deg)

transform-origin:top

}

6,过渡

div {

width: 200px

height: 200px

background: red

margin: 20px auto

-webkit-transition-property: all

transition-property: all //指定过渡或动态模拟的css属性 (all是指所有)

-webkit-transition-duration:5s

transition-duration:5s //指定完成过渡的时间

-webkit-transition-timing-function: linear

transition-timing-function: linear//指定过渡的函数 linear/ease/ease-in/ease-out/ease-in-out/cubicbezier(n,n,n,n) n为0-1

-webkit-transition-delay: .18s

transition-delay:.18s //指定开始出现的延迟时间

}

div:hover {

width: 400px

height:400px

}

7,Keyframes被称为关键帧,css3中以“@keyframes”开头,后面紧跟着是动画名称加上一对花括号“{...}”

@keyframes changecolor{

0%{

background: red

}

20%{

background:blue

}

40%{

background:orange

}

60%{

background:green

}

80%{

background:yellow

}

100%{

background: red

}

}

div {

width: 300px

height: 200px

}

div:hover {

animation: changecolor 5s ease-out .2s

}

等价于

div:hover{

animation-name:changecolor

animation-duration:5s

animation-timing-function:ease-out

animation-delay:1

animation-iteration-count:infinite//动画播放次数 整数。

animation-play-state:paused//主要用来控制元素动画的播放状态。

animation-direction:alternate//动画方向,normal每次循环向前,alternate偶次向前,奇数相反。

animation-fill-mode: both//设置动画时间外属性none、forwards、backwords和both

}

要在CSS中实现上下门的移动效果,你可以使用CSS的transform属性来设置门的位移效果。

以下是一个简单的例子,假设你有一个类名为door的HTML元素,希望实现上下移动效果:

Copy code.door { transform: translateY(-100px) transition: transform 1s

}.door.open { transform: translateY(0)

}

在上面的CSS代码中,我们使用了transform属性的translateY方法来实现垂直移动,并使用了transition属性来设置动画过渡效果。我们还定义了一个类名为open的状态,在这个状态下,门的位置会发生改变,从而实现上下移动的效果。

要在HTML代码中触发这个状态,你可以使用JavaScript来添加或删除open类名:

Copy codedocument.querySelector('.door').classList.add('open')document.querySelector('.door').classList.remove('open')

希望这些信息能帮助你实现所需的上下门移动效果。

1.对于行内元素是无效的

2.会保留原来的位置,提高盒子的层级 与relative相对定位类似

transform: translate(X,Y)

1.填入具体数值,例如 translate(10px,10px) ,需要填写单位,元素将会向右位移10px,向下位移10px

其中如果数值为负数,则位移的方向相反

2.填入百分比数字,例如 translate(10%,10%) ,元素将会向右位移 自身元素 的width 10%距离和向下位移 自身元素 的height 10%距离

transform: rotate(X)

需要在X位置填写相对应的旋转角度,并带上单位deg,例子: rotate(90deg)

元素将会默认在自身的垂直水平居中点进行旋转对应的X度

transform-origin: X Y

可以通过改变元素的该属性,导致元素旋转的原点进行改变

1.填入的X Y值为方位名词,例如top\bottom\left\right

例子: transform-origin: left top 元素将在元素的左上角为原点进行旋转运动

transform: scale(X)

可以通过改变元素的该属性,导致元素进行X倍的缩放X为负数时将会产生镜面效果

例子: transform: scale(1.2) 元素将变为原来的1.2倍.

transform连写,如果有发生平移,都需要先写平移属性

例子 transform: translateX(300%) rotate(360deg)

可以在发生transform的元素中设置transition属性

例子: transition: 1s 代表触发元素发生变化后,变化将于1s内完成