您的位置:首页 > 健康 > 美食 > 宁波网站建设的企业_自助建站一般适用于大型电子商务网站建设_权重查询工具_网络优化是做什么的

宁波网站建设的企业_自助建站一般适用于大型电子商务网站建设_权重查询工具_网络优化是做什么的

2025/7/7 12:18:14 来源:https://blog.csdn.net/chestnut_orenge/article/details/143926353  浏览:    关键词:宁波网站建设的企业_自助建站一般适用于大型电子商务网站建设_权重查询工具_网络优化是做什么的
宁波网站建设的企业_自助建站一般适用于大型电子商务网站建设_权重查询工具_网络优化是做什么的

CSS3 2D转换

转换是CSS3中具有颠覆性的特征之一,可以实现元素的位移,旋转,缩放等效果

转换可以理解为变形:缩放、旋转、移动

移动

2D移动数2D这个样哑巴中的一种功能,可以改变元素在页面中的位置,类似于定位

语法是这样:

transform:translate(x,y);
transform:translateX(n);
transform:translateY(n);
div{width: 200px;height: 200px;background-color: pink;transform: translate(100px,100px);
}

 translate最大的优点是不会影响到其他元素的位置

translate的百分比单位是相对于自身元素的translate

我们可以用这个特点实现子盒子在父盒子的中央位置

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>天菜</title><style>div{position: relative;width: 500px;height: 500px;background-color: pink;}p{position: absolute;top:50%;left: 50%;;width: 200px;height: 200px;background-color:aqua;transform: translate(-50%,-50%);}</style>
</head>
<body><div><p></p></div>
</body>
</html>

对行内标签是没有效果的

旋转

旋转是指元素在二维平面内顺时针或者逆时针旋转

这是基本的语法:

transform:rotate(度数)

 rotate里面跟度数,单位是deg,比如rotate(45deg)

角度为正的时候,顺时针

负的时候是逆时针

默认的旋转的中心点是元素的中心点

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 300px;height: 300px;   }div img{width: 100%;height: 100%;border-radius: 50px;}div:hover img{transform: rotate(360deg);transition: all 0.7s;}</style>
</head>
<body><div><img src="./1714915128_new_IMG-20240503-WA0094.jpg" alt=""></div>
</body>
</html>

真是盖了帽了 

旋转可以给我们做出三角形

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{position: relative;width: 249px;height: 35px;border: 1px solid red;}div::after{content: "";position: absolute;top: 0;right: 0;width: 15px;height: 15px;border-right: 1px solid skyblue;border-bottom: 1px solid seagreen;transform: rotate(45deg);}</style>
</head>
<body><div></div>
</body>
</html>

三角和旋转配合起来就可以有动画的效果

我们可以设置我们元素转换的中心点:transform-origin

transform-origin: x y;
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{overflow: hidden;width: 200px;height: 200px;border: 1px solid palegreen;margin: 100px auto;}div::before{content: "喜欢";display: block;width: 100%;height: 100%;background-color: hotpink;transform: rotate(180deg);transform-origin: left bottom;transition: all 0.4s;}div:hover::before{transform: rotate(0deg);}</style>
</head>
<body><div></div>
</body>
</html>

 旋转效果可爱捏

缩放

缩放的语法:

transform: scale(x,y);

里面的数字如果不跟单位的话就是倍数的意思

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 200px;height: 200px;background-color: pink;margin: 100px auto;}div:hover{transform: scale(2,2);}</style>
</head>
<body><div></div>
</body>
</html>

 scale缩放最大的优势:可以设置转换中心点缩放,默认以中心点缩放,而且不影响其他盒子

分页按钮
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>li{float: left;width: 30px;height: 30px;border: 1px solid pink;margin: 10px;text-align: center;line-height: 30px;list-style: none;border-radius: 7px;transition: all 0.4s;}li:hover{transform: scale(1.2);}</style>
</head>
<body><ul><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li></ul>
</body>
</html>

2D转换有综合的写法,是同时使用多个转换,空格隔开即可

顺序会影响转换的效果

当我们同时拥有位移和其他属性的时候,记得要将位移放到最前面 

CSS3 动画

动画是CSS3中具有颠覆性的特征之一,可以通过多个结点控制一个或一组动画,常用来实现复杂的动画效果

动画可以实现更多的变化,控制,连续自动播放等效果

先定义再调用

@keyframes 动画名称{0%{width:100px;}100%{width:200px;}
}

这是定义动画

这是使用动画:

div{height: 300px;width: 300px;border-color: aqua;animation-name: move;animation-duration: 5s;
}

 动画可以实现很多效果

动画可以改变任意多的样式任意多的次数

可以用百分比规定变化发生的时间,或者用关键词from to,等同于0和100

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>@keyframes move{0%{transform: translate(0px);}25%{transform: translate(1000px,0);}50%{transform: translate(1000px,500px);}75%{transform: translate(0,500px);   }100%{transform: translate(0px);}}div img{height: 200px;width: 300px;background-color: aqua;animation-name: move;animation-duration: 3s;}</style>
</head>
<body><div><img src="./pp.jpg" alt=""></div>
</body>
</html>

 还挺炫酷的

这是各种可以设置的属性

动画结束之后的状态是backwards

动画简写就是animation:动画名称,持续时间,运动曲线,何时开始,播放次数,是否反方向,动画起始或者结束的状态 

我用动画做了537的发光眼:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.map{position: relative;width: 550px;height: 550px;background-image: url(./537.jpg);}.city{position: absolute;top: 141px;right: 105px;}.dotted{width: 8px;height: 8px;background-color: rgb(0, 255, 76);border-radius: 50%;}.city div[class^="pulse"]{position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);width: 8px;height: 8px;box-shadow: 0 0 12px #5dfd00;border-radius: 50%;animation: pulse 1.2s linear infinite;}.map .city .pulse2{animation-delay: 0.4s;}.map .city .pulse3{animation-delay: 0.8s;}@keyframes pulse{0%{}70%{width: 40px;height: 40px;opacity: 1;}100%{width: 70px;height: 70px;opacity: 0;}}    
</style>
</head>
<body><div class="map"><div class="city"><div class="dotted"></div><div class="pulse1"></div><div class="pulse2"></div><div class="pulse3"></div></div></div>
</body>
</html>

然后关于速度曲线有细节,具体看这张表:

这个步长是一步一步走的

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 0;height: 30px;background-color: pink;animation: w 4s steps(10) forwards;}@keyframes w{0%{width: 0;}100%{width: 200px;}}</style>
</head>
<body><div></div>
</body>
</html>

我们可以拿这个实现打字效果 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{overflow: hidden;width: 0;height: 30px;white-space: nowrap;background-color: pink;animation: w 4s steps(11) forwards;}@keyframes w{0%{width: 0;}100%{width: 180px;}}</style>
</head>
<body><div>西安邮电你是杀不死我的</div>
</body>
</html>

嘻嘻

我是不会放过你们的

给我等着吧

这个肉像是有蛆爬过去一样

西安邮电还在输出

而且我还吃了大半碗才发现这件事

案例:奔跑的蓝色米老鼠

CSS3 3D转换

我们的生活环境是3D的,照片就是3D物品在2D平面中呈现的例子

它近大远小

且物体后面遮挡不可见

我们3D转换所用到的三维坐标系是立体空间,是由三个轴共同组成的

3D位移

这是语法:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 200px;height: 200px;background-color: pink;/* transform: translateX(100px) translateY(100px) translateZ(100px); */transform: translate3d(100px,100px,100px);}</style>
</head>
<body><div></div>
</body>
</html>

而xyz都是不能省略的,如果没有的话就写0 

要在2D平面产生近大远小视觉立体的效果只是二维的

透视

如果想要产生3D效果的话需要透视(3D投影在2D平面)

模拟人类的视觉位置,可以认为是只安排一只眼睛去看

透视我们也称之为视距,视距就是人的眼睛到屏幕的距离

距离视觉点近的电脑平面成像越大,越远的越小

透视的单位是像素

透视是写在被观察元素的父盒子上面的

d是视距,是一个距离人的眼睛到屏幕的距离

z是z轴,物体距离屏幕的距离,越大我们看到的物体就越大

3D旋转

3D旋转可以让我们按照x轴y轴z轴或者自定义轴旋转

语法:

transform: rotateX(45deg);
transform: rotateY(45deg);
transform: rotateZ(45deg);
transform: rotate3d(x,y,z,deg);

这前面三个分别是沿着x,y,z正方向旋转45deg,第四个是沿着自定义轴旋转,deg是角度 

对于元素的旋转方向的判断,基于左手准则

左手手拇指指向x轴的正方向,其余手指的弯曲方向就是该元素沿着x轴旋转的方向

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body{/* 透视写到被观察的元素的父盒子上面 */perspective: 500px;}div{width: 200px;height: 300px;background-color: pink;transform: translate3d(100px,100px,100px);transform: translateZ(-300px);transition: all 0.5s;margin: 0 auto;}div img{width: 100%;height: 100%;}div:hover{transform: rotateX(180deg);}</style>
</head>
<body><div><img src="./王振1.jpg" alt=""></div>
</body>
</html>

这是沿着不同轴转动能实现的效果 

3D呈现

3D呈现是transform-style

它控制子元素是否开启三维立体环境

transform-style:flat子元素不开启3d立体空间,默认的

transform-style:preserve-3d,子元素开启立体空间

代码写给父级,影响的是子盒子

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body{perspective: 500px;}.box{position: relative;width: 200px;height: 200px;margin: 100px auto;transition: all 1.1s;transform-style: preserve-3d;}.box:hover{transform: rotateY(60deg);}.box div{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-color: aquamarine;}.box div:last-child{background-color: purple;transform: rotateX(60deg);}</style>
</head>
<body><div class="box"><div></div><div></div></div>
</body>
</html>

这就可以实现3D的立体效果

 两面旋转盒

我们首先需要搭建html结构

box父盒子里面包含前后两个子盒子

box是反转的盒子,front是前面的盒子,back是后面的盒子

我们反转的是盒子

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body{perspective: 350px;}.box{position: relative;width: 250px;height: 300px;margin: 100px auto;/* 让背面的盒子保存立体空间 */transition: all 3s;transform-style: preserve-3d;backface-visibility: hidden;}.front,.back{position: absolute;top: 0;left: 0;width: 100%;height: 100%;border-radius: 50%;}.front{z-index: 1;}.back{transform: rotateY(180deg);}.box:hover{transform: rotateY(180deg);}</style>
</head>
<body><div class="box"><img src="./见见的狗.jpg" alt="" class="front"><img src="./王振2.jpg" alt="" class="back"></div>
</body>
</html>

这是我们实现的代码

旋转木马案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body{perspective: 800px;}@keyframes rotate{0%{transform: rotateY(0);}100%{transform: rotateY(360deg);}}section{position: relative;width: 400px;height: 400px;margin: 100px auto;transform-style: preserve-3d;animation: rotate 10s linear infinite;background: url(./王振1.jpg);background-size: cover;}section:hover{/* 鼠标放置暂停 */animation-play-state: paused;}section div{position: absolute;width: 100%;height: 100%;top: 0;left: 0;background: url(./见见的狗.jpg);}section div:nth-child(1){transform: translateZ(500px);}section div:nth-child(2){transform: rotateY(60deg) translateZ(500px);}section div:nth-child(3){transform: rotateY(120deg) translateZ(500px);}section div:nth-child(4){transform: rotateY(180deg) translateZ(500px);}section div:nth-child(5){transform: rotateY(240deg) translateZ(500px);}section div:nth-child(6){transform: rotateY(300deg) translateZ(500px);}</style>
</head>
<body><section><div></div><div></div><div></div><div></div><div></div><div></div></section>
</body>
</html>

当然是要先旋转再移动啦 

说实话这个看久了头都晕了

浏览器私有前缀

浏览器有私有前缀,是为了兼容老版本的写法,比较新版本的浏览器都无需添加

这就是主要的属性

看完十日终焉的我:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com