css3 2D与3D转换

简介: css3 2D与3D转换


前言

网页设计不再局限于平面,而是充满了立体感和动态效果。CSS3的2D与3D转换技术就像一把魔法棒,让我们能够在页面中创造出引人入胜的立体效果。本文将带你踏入这个维度,探索CSS3转换的奇妙之处。

2D变形

旋转变形 rotate()

将transform属性的值设置为rotate(),即可实现旋转变形

若角度为正,则顺时针方向旋转,否则逆时针方向旋转

transform-origin属性

可以使用transform-origin属性设置自己的自定义变换原点

transform-origin:0 0;  //表示以左上角作为中心点

缩放变形 scale()

将transform属性的值设置为scale(),即可实现缩放变形

transform:scale(3);  //3表示缩放的倍数,当数值小于1时,表示缩小元素,大于1时,表示放大元素

斜切变形 skew()

将transform属性的值设置为skew(),即可实现斜切变形

位移变形 translate()

将transform属性的值设置为translate(),即可实现位移变形

位移变形和相对定位非常像,位移变形也会“老家留坑”,“形影分离”,兼容到ie9

3D变形

3D旋转 rotateX() | rotateY()

将transform属性的值设置为rotateX()或者rotateY(),即可实现绕横轴、纵轴旋转

perspective属性

perspective属性用来定义透视强度,可以理解为“人眼到舞台的距离”,单位是px

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
        content="width=device-width,initial-scale=1, user-scalable=no, maximum-scale=1,minimum-scale=1">
    <!-- width=device-width, initial-scale=1.0 页面的宽度应该等于设备的宽度,并且初始缩放级别为 1.0。这有助于确保在移动设备上以正常大小呈现页面,而不是被过度缩放。 -->
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        p {
            width: 200px;
            height: 200px;
            border: 1px solid #000;
            background-color: orange;
            transform: rotateX(30deg);
        }
        .box1 {
            width: 202px;
            height: 202px;
            border: 1px solid #000;
            margin: 50px auto;
            perspective: 300px;
        }
    </style>
</head>
<body>
    <div class="box1">
        <p> </p>
    </div>
</body>
</html>

空间移动

当元素进行3D旋转后,即可继续添加translatex()、translateY()、translatez()属性让元素在空间进行移动

**一定记住:**空间移动要添加在3D旋转之后

transform:rotateX(30deg) translateX(30px) translateZ(100px);

制作一个正方体

正方体的每个面都是从舞台经过不同的3D旋转、空间移动到自己的位置的

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
        content="width=device-width,initial-scale=1, user-scalable=no, maximum-scale=1,minimum-scale=1">
    <!-- width=device-width, initial-scale=1.0 页面的宽度应该等于设备的宽度,并且初始缩放级别为 1.0。这有助于确保在移动设备上以正常大小呈现页面,而不是被过度缩放。 -->
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .box1 {
            width: 202px;
            height: 202px;
            border: 1px solid #000;
            margin: 200px auto;
            perspective: 300px;
            position: relative;
        }
        p {
            width: 200px;
            height: 200px;
            position: absolute;
            top: 0;
            left: 0;
        }
        .box1 p:nth-child(1) {
            background: rgb(62 255 244 / 73%);
            /* 前面 */
            transform: translateZ(100px)
        }
        .box1 p:nth-child(2) {
            background: rgba(242, 255, 62, 0.959);
            /* 顶面 */
            transform: rotateX(90deg) translateZ(100px)
        }
        .box1 p:nth-child(3) {
            background: rgba(65, 62, 255, 0.73);
            /* 背面 */
            transform: rotateX(180deg) translateZ(100px)
        }
        .box1 p:nth-child(4) {
            background: rgba(62, 255, 120, 0.73);
            /* 底面 */
            transform: rotateX(-90deg) translateZ(100px)
        }
        .box1 p:nth-child(5) {
            background: rgb(255, 122, 34);
            /* 侧面 */
            transform: rotateY(90deg) translateZ(100px)
        }
        .box1 p:nth-child(6) {
            background: rgba(255, 62, 72, 0.73);
            /* 侧面 */
            transform: rotateY(-90deg) translateZ(100px)
        }
    </style>
</head>
<body>
    <div class="box1">
        <p> </p>
        <p> </p>
        <p> </p>
        <p> </p>
        <p> </p>
        <p> </p>
    </div>
</body>
</html>

结语

通过深入了解CSS3的2D与3D转换,你将能够为网页设计注入更多创意和交互性。这不仅是技术的提升,更是对设计艺术的追求。让我们一同穿越维度的大门,用转换打破平面的界限,创造出引人入胜的用户体验。

目录
相关文章
|
5月前
CSS3自动旋转正方体3D特效
CSS3自动旋转正方体3D特效
45 3
CSS3自动旋转正方体3D特效
|
5月前
|
前端开发
css 2D转换
css 2D转换
31 0
|
2月前
|
前端开发
HTML+CSS动画实现动感3D卡片墙:现代Web设计的视觉盛宴
HTML+CSS动画实现动感3D卡片墙:现代Web设计的视觉盛宴
|
4月前
|
前端开发 JavaScript UED
CSS进阶-3D变换与透视效果
【6月更文挑战第15天】CSS3的3D变换和透视效果增强了网页的深度感。通过`rotateX/Y/Z`旋转和`translateZ`移动,结合`perspective`属性可创建3D空间。`perspective`定义观察者与Z轴的距离,影响元素的缩放感。常见问题包括过度失真和元素遮挡顺序,可通过调整`perspective`值和使用`z-index`解决。进阶技巧涉及层叠上下文理解和3D卡片翻转效果,通过实践与探索,设计师能更好地利用这些工具创新用户体验。
73 6
|
4月前
|
前端开发 开发者
CSS进阶-2D变换:translate, rotate, scale
【6月更文挑战第15天】CSS 2D变换如`translate`、`rotate`和`scale`赋予了网页设计灵活性,无需改动HTML即可实现元素移动、旋转和缩放。本文详解这三个属性,讨论使用中的问题和解决方案,并提供代码示例。例如,`translate(50px, 100px)`平移元素,`rotate(45deg)`顺时针旋转45度,`scale(1.5, 1)`水平放大1.5倍。理解百分比、旋转中心和缩放影响,结合transform-origin和注释,能帮助开发者更好地掌握这些技巧。
49 4
|
3月前
|
前端开发 JavaScript
【HTML+CSS+JavaScript】3d-boxes-background
【HTML+CSS+JavaScript】3d-boxes-background
29 0
|
3月前
|
前端开发 JavaScript
前端 CSS 经典:3D Hover Effect 效果
前端 CSS 经典:3D Hover Effect 效果
42 0
|
3月前
|
前端开发 JavaScript
前端 CSS 经典:3D 渐变轮播图
前端 CSS 经典:3D 渐变轮播图
69 0
|
5月前
|
前端开发
纯css实现的3D立体鸡蛋动画视觉效果
纯css实现的3D立体鸡蛋动画视觉效果
58 6
纯css实现的3D立体鸡蛋动画视觉效果
|
10月前
HTML+CSS制作3D旋转相册
HTML+CSS制作3D旋转相册