当前位置:首页 > 编程语言 > 正文内容

使用纯HTML/CSS实现令人惊叹的3D效果

a811625532年前 (2023-09-21)编程语言21

HTML 和 CSS 可能是二维网页设计的基石,但在它们的虚拟工具箱中却隐藏着创建令人惊叹的三维视角的秘密。试想一下,在 *** 交互界面时,如何超越平面,进入一个 X、Y 和 Z 轴共舞的世界。在本篇博文中,我们将为您揭开 HTML 和 CSS 3D 功能的神奇面纱,指导您使用基本属性和技术来创建令人惊叹的 3D 视觉效果。

比如这个:

在 HTML 中利用透视技术

虽然 HTML 和 CSS 主要用于构建 2D 布局,但仍有 3 个轴(X、Y 和 Z)可以通过特定的 CSS 属性创建透视图。

perspective 属性

(透视)属性通过沿 Z 轴调整的位置来改变用户的视角。

例如,使用以下代码片段将在用户和平面(Z 轴)之间建立 800px 的距离。

.perspective {
position: relative;
perspective: 800px;
}
<div></div>

perspective-origin 属性

(透视原点)属性决定了用户沿 X 轴和 Y 轴的位置。

要从上方查看对象,可以使用以下代码:

.perspective {
position: relative;
perspective: 800px;
perspective-origin: 50% -200px;
}

在本例中,我们将 X 轴居中(50%),Y 轴的位置为 -200px。

现在,您已经掌握了 HTML 和 CSS 中的 3D 要素,让我们开始创建自己的 3D 立方体吧!

1. 打好基础

在 HTML 结构中,我们将构建一个透视平面,并为立方体的每个面添加一个 div 元素。

<div>
<div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</div>

现在,让我们为透视平面赋予一个特定的视角。在我们的案例中,我们希望看到立方体的俯视图。

.perspective {
perspective: 800px;
perspective-origin: 50% -200px;
}

然后,我们将为方框指定尺寸,并为各个面应用样式。为了在 div 中的透视平面内保持 3D 渲染,我们使用了 transform-style: preserve-3d

.box {  
width: var(--size);
aspect-ratio: 1;  
position: relative;
transform-style: preserve-3d;
}
.face {
position: abSOLute;
width: var(--size);
aspect-ratio: 1;
background-color: hsl(
39,
100%,
66%
);
transform-style: preserve-3d;
}

这时,你会看到所有的面都叠加在同一位置,形成一个正方形。

2. *** 图案

现在,让我们 *** 立方体的二维图案,然后像折纸一样将其折叠。此外,我们还将加入旋转动画,以获得更好的 3D 可视化效果。

创建图案可以简化旋转和精确定位元素的过程,防止倒置面的混淆。

.box {  
animation: rotate 4s linear infinite;
}
.face.front {
}
.face.bottom {
top: 100%;
}
.face.top {
bottom: 100%;
}
.face.back {
bottom: 200%;
}
.face.right {
left: 100%;
}
.face.left {
right: 100%;
}
@keyframes rotate {
from {
transform: rotate(0);
}
to {
transform: rotateY(360deg);
}
}

现在,你应该看到一个十字形的配置:

3. 折叠表面 *** 立方体

下一步是折叠面以创建立方体效果。这需要使用 rotateX()rotateY() 并通过 transform-origin 指定折叠的顶点。

对于背面,我们需要调整 Y 轴和 Z 轴的 transform-origin,因为它与正面相距两个面。

.face.front {
}
.face.bottom {
top: 100%;
transform-origin: top;
transform: rotateX(-90deg);
}
.face.top {
bottom: 100%;
transform-origin: bottom;
transform: rotateX(90deg);
}
.face.back {
bottom: 200%;
transform-origin: center 150px -50px;
transform: rotateX(180deg);
}
.face.right {
left: 100%;
transform-origin: left;
transform: rotateY(90deg);
}
.face.left {
right: 100%;
transform-origin: right;
transform: rotateY(-90deg);
}

4.为面部添加阴影

为了获得较为逼真的 3D 效果,我们需要为面部添加阴影。虽然 CSS 缺乏原生光照,但我们可以通过改变颜色的明暗度来营造出深度的错觉。

我们将利用 hsl() 的 lightness 属性为每个面孔创建不同的阴影。

.face {  
background-color: hsl(
39,
100%,
var(--lightness)
);
}
.face.front {
--lightness: 66%;
}
.face.bottom {
--lightness: 74%;
}
.face.top {
--lightness: 74%;
}
.face.back {
--lightness: 78%;
}
.face.right {
--lightness: 70%;
}
.face.left {
--lightness: 70%;
}

现在,你将看到一个绚丽的 3D 立方体,它完全由 HTML 和 CSS *** 而成!

希望本教程能点燃你的想象力,用纯 HTML 和 CSS *** 出迷人的 3D 动画。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/8066.html

分享给朋友:

“使用纯HTML/CSS实现令人惊叹的3D效果” 的相关文章

PHP 8.1有哪些变化:新特性、改变及弃用等

PHP 8.1有哪些变化:新特性、改变及弃用等

不久前,PHP 8.0大张旗鼓地发布了。它带来了许多新特性、性能增强和变化——其中最令人兴奋的是新的JIT编译器。 技术世界总是在向前发展,PHP也是如此。 ,包含了几个令人兴奋的特性。它定于今年晚些时候于2021年11月25日发布。 在本文中,我们将详细介绍PHP 8.1将带来哪些新的东...

宝塔面板教程之主界面管理篇

宝塔面板教程之主界面管理篇

本章节主要是对宝塔面板的主界面的各个版本进行一个简单的说明。 宝塔面板主界面主要包括:服务器操作系统、服务器状态、站点信息、软件管理及网络流量几个部分。 Windows面板有部分功能未实现,其余部分与Linux面板同步。 系统操作...

如何成为一名出色的Java开发人员

如何成为一名出色的Java开发人员

美国劳工统计局估计在美有超过软件开发人员。根据2021年的数据,其中,这是世界上使用最广泛的五种编程语言之一。 自然,学习Java并成为Java开发人员对于任何对软件开发感兴趣的人来说都是明智的职业选择。 在本综合指南中,您将学习成为Java开发人员所需的一切知识。我们将分解您需要的技能、工...

正面对比Node.js与PHP

正面对比Node.js与PHP

Node.js和PHP是Web开发工作中常用的两种基本Web技术。两者都为服务器端开发做出了贡献,Node.js甚至同时服务于客户端和服务器端开发。 PHP已经为开发人员服务了近3年,现在它为78%的网络提供支持。相比之下,Node.js相对较新,但扩展速度非常快,由于其全栈开发能力而成为流行...

PHP 8.2年内将发布,一起来看看都有什么新特征

PHP 8.2年内将发布,一起来看看都有什么新特征

PHP 8.2预计将于今年11月发布,最新的稳定版本是PHP 8.1.5。虽然现在还为时过早,但对更新的接受程度参差不齐。 但是,知道会发生什么可以帮助您。通过了解新功能和不推荐使用的功能,您可以了解更新可能如何影响开发。这些知识还可以帮助您为最终发布做好准备。 在这篇文章中,我们将回顾最新...

什么是Tomcat服务器软件?

什么是Tomcat服务器软件?

Web服务器是您网站的重要组成部分。它们使您的内容可供尝试访问它的访问者使用。但是,您可能想知道:Tomcat是什么,它与其他服务器软件有何不同?幸运的是,我们整理了一份指南来回答这些问题(以及更多!)。 在这篇文章中,我们将仔细研究Tomcat及其工作原理。我们还将讨论它的优缺点,并向您展示...