CSS基础-3D变形

这篇具有很好参考价值的文章主要介绍了CSS基础-3D变形。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Untitled.png

今天介绍 两种 3D变形的形式:3D旋转、空间位移。

3D旋转

在上一节 2D变形中, 我们用到了 transform  属性。那么在3D旋转中同样还是这个属性(怎么老是它,手动狗头)。

rotateX() 函数来给 transform  属性赋值,即可实现元素标签绕X(横)轴3D旋转。

语法

// 绕横轴(盒子X轴中心线 旋转 30 度)
transform: **rotateX**(30deg)

rotateY() 函数来给 transform  属性赋值,即可实现元素标签绕Y(横)轴3D旋转。

语法

// 绕纵轴(盒子Y轴中心线 旋转 30 度)
transform: **rotateY**(30deg)

rotateZ() 函数来给 transform  属性赋值,即可实现元素标签绕Z(竖)轴3D旋转。

语法

// 绕纵轴(盒子Y轴中心线 旋转 30 度)
transform: **rotateZ**(30deg)

如果只用单独的transform 和 一个空间旋转函数 来做,可能视觉上并不能达到要求。

举例

Untitled 1.png

红色部分就是 box1 , 其实它是一个正方形,当我们 设置了 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>
      * {
        margin: 0;
        padding: 0;
      }
      .box1 {
        width: 200px;
        height: 200px;
        background-color: red;
        transform: rotateX(30deg);
      }
      .parentBox {
        width: 200px;
        height: 200px;
        border: 1px orange solid;
        margin: auto;
      }
    </style>
  </head>
  <body>
    <div class="parentBox">
      <div class="box1"></div>
    </div>
  </body>
</html>

如果想看出是旋转的样子,还需要一个属性配合, 那就是 perspective

perspective

perspective 表示 观察者(人)到 平面元素的 距离。值越大,表示距离平面元素越远。

配合 transform 如下

Untitled 2.png
举例

实现 子元素 沿X轴旋转 30度。

Untitled 3.png

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=<device-width>, initial-scale=1.0" />
    <title>3D旋转示例</title>

    <style>
      * {
        margin: 0;
        padding: 0;
      }
      .box1 {
        width: 200px;
        height: 200px;
        background-color: red;
        transform: rotateX(30deg);
      }
      .parentBox {
        width: 200px;
        height: 200px;
        border: 2px green solid;
        margin: auto;
        margin-top: 10px;
        perspective: 300px;
      }
    </style>
  </head>
  <body>
    <div class="parentBox">
      <div class="box1"></div>
    </div>
  </body>
</html>

元素可以同时绕多个轴旋转,例如 绕X轴旋转30度,绕Y轴旋转30度。

Untitled 4.png

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=<device-width>, initial-scale=1.0" />
    <title>3D旋转示例1</title>

    <style>
      * {
        margin: 0;
        padding: 0;
      }
      .box1 {
        width: 200px;
        height: 200px;
        background-color: red;
        transform: rotateX(30deg) rotateY(30deg);
      }
      .parentBox {
        width: 200px;
        height: 200px;
        border: 2px green solid;
        margin: auto;
        margin-top: 10px;
        perspective: 300px;
      }
    </style>
  </head>
  <body>
    <div class="parentBox">
      <div class="box1"></div>
    </div>
  </body>
</html>

空间位移

当元素发生 3D旋转后,就可以进行空间位移。注意 一定要是发生旋转后,才可以看出位移效果,否则就和2D平面位移没啥区别了。

用 translateX()、 translateY()、translateZ() 给 transform 赋值,就可以分别 发生三个方向X轴,Y轴,Z轴方向的移动。三个位移函数接收参数支持长度单位。

语法

// 发生3D旋转后, 才能看出3D效果
// 可以同时发生多个方向位移
transform: rotateX(30deg) translateX(30px) translateY(30px);

举例

一个元素, 在X轴方向发生30px距离的位移, 在Y轴方向发生30px的位移。效果如下

Untitled 5.png文章来源地址https://www.toymoban.com/news/detail-681260.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>空间位移</title>
    <style>
      p {
        width: 200px;
        height: 200px;
        background-color: orange;
      }
      .box1 {
        width: 202px;
        height: 202px;
        border: 1px solid black;
        perspective: 300px;
      }

      .box1 p {
        transform: rotateX(30deg) translateX(30px) translateY(30px);
      }
    </style>
  </head>
  <body>
    <div class="box1">
      <p></p>
    </div>
  </body>
</html>

到了这里,关于CSS基础-3D变形的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【CSS动画02--卡片旋转3D】

    css动画02--旋转卡片3D 当鼠标移动到中间的卡片上会有随着中间的Y轴进行360°的旋转,以下是几张图片的介绍,上面是鄙人自己录得一个供大家参考的小视频🤭

    2024年02月12日
    浏览(29)
  • CSS 3D旋转正方形

    2024年01月23日
    浏览(31)
  • 【CSS3】CSS3 3D 转换 ④ ( 3D 旋转 rotate3d | rotate3d 语法 | rotate3d 自定义轴旋转 | 元素旋转方向 - 左手准则 | 代码示例 )

    3D 旋转 指的是 在 三维空间坐标系 中 , 绕 X 轴 , Y 轴 , Z 轴 进行旋转 , 同时还可以绕 自定义轴 进行旋转 ; 2D 旋转只能 以 某个点为中心进行旋转 , 3D 旋转可以绕某个轴进行旋转 ; CSS3 中 3D 旋转 语法 : 绕 X 轴旋转 : 沿着 X 轴 正方向 旋转 45 度 ; 绕 Y 轴旋转 : 沿着 Y 轴 正方向

    2024年02月11日
    浏览(32)
  • 如何在C++中将int类型的变量转换为string类型呢?今天我们就来介绍两种方法。

    如何在C++中将int类型的变量转换为string类型呢?今天我们就来介绍两种方法。 第一种方法是使用C++11标准引入的std::to_string()函数。这个函数可以将数字类型的变量转换为对应的字符串类型。下面是一个使用示例: 上面的代码将整型变量num转换为字符串类型,并输出到控制台

    2024年02月08日
    浏览(40)
  • css实现图片的3d旋转-照片墙

      1.html                 这里准备了1个section和7个div,7个div都要求定位在父元素section那里(都在中心点),每个div各一张图,上面效果图有1张在中间的,其余6张图要在周围 2.图片位置摆放- 旋转           6个图片在 周围 ,看起来就像个六边形,所以每个图都间隔

    2024年02月06日
    浏览(82)
  • 纯css实现奥运五环、3D平移、旋转、扭曲

    1、不是真正的五环,因为通过形变得来。 2、不同电脑显示器的像素不同,显现的效果不同。 3、不推荐使用此方法。 4、主要通过旋转加平移的方式实现。

    2024年02月10日
    浏览(31)
  • 如何用css实现一个3D旋转照片墙

       学习前端是件很有趣的事,今天我又来分享一下关于html+css实现的3D效果的照片墙的代码啦,希望感兴趣的小伙伴会喜欢!    今天,我们要做一个3D旋转相册,首先让我们了解一下关于3D。    3D立体其实就像数学中的x轴,y轴,z轴,在网页上设置z轴与y轴的偏移量,能给

    2024年02月01日
    浏览(41)
  • CSS3实现图片的3D旋转效果

    准备两张图片,尺寸一样大,本代码中是绕 Y 轴进行旋转(也可以改为 X 轴)。 先看看效果:   代码如下:

    2024年02月12日
    浏览(39)
  • `CSS`----图标`3D`环绕旋转,近大远小效果

    CSS ----图标 3D 环绕旋转,近大远小效果 1、先设置图标底部圆环,图片为一张正圆图,给图片外层盒子设置 transform: scaleY(0.25); ,将图片效果转为椭圆 代码如下: 效果图 2、给底部圆环添加动画 3、引入图标,并渲染到页面 4、设置每个图标的位置,并给每个图标添加动画 1、第一

    2024年02月21日
    浏览(34)
  • 前端 CSS 3D 照片墙自动旋转案例(详细步骤)

    案例动画 Gif 动画地址,图片太大传不上来! 案例 DEMO 源码地址 ,仅供参考。

    2024年01月18日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包