gpt4 book ai didi

css - 旋转 CSS 立方体

转载 作者:行者123 更新时间:2023-11-28 09:26:07 27 4
gpt4 key购买 nike

我想创建一个 CSS 立方体,它有 4 个面(正面、背面、顶部、底部),并且它仅在 X 轴上不断向上(或向下)旋转。但出于某种原因,我无法对齐所有 4 个边,所以它看起来像一个立方体。这是我的标记:

<div class="cube">
<div class="front">
<h1>Front</h1>
</div>
<div class="bottom">
<h2>Bottom</h2>
</div>
<div class="top">
<h2>Top</h2>
</div>
<div class="back">
<h2>Back</h2>
</div>

还有我的 CSS:

body {
color: rgb(6, 106, 117);
text-transform: uppercase;
font-family: sans-serif;
font-size: 100%;
background: #F4F6F8;
padding: 3em 0 0 0;
line-height: 62px;
-webkit-perspective: 1000px; /* <-NB */
}

.cube {
width: 30%;
text-align: center;
margin: 0 auto;
height: 100px;

-webkit-transform-style: preserve-3d;
-webkit-animation: rotate-cube 10s linear infinite;
}

.front, .bottom, .top, .back {
background: rgb(247, 247, 247);
border: 1px solid rgba(147, 184, 189, .8);
-webkit-border-radius: 5px;
-webkit-box-shadow: 0 5px 20px rgba(105, 108, 109, .3), 0 0 8px 5px rgba(208, 223, 226, .4) inset;
height: 100px;
}

.front {
-webkit-transform: translateZ(50px);
}

.bottom {
-webkit-transform: rotateX(-90deg) translateZ(-50px);
transform: rotateX(-90deg) translateZ(-50px);
}

.top {
-webkit-transform: rotateX(90deg) translateZ(-50px);
}

.back {
-webkit-transform: rotateX(180deg) translateZ(-50px);
}

@-webkit-keyframes rotate-cube {
0%{-webkit-transform: rotateX(0deg);}
10%{-webkit-transform: rotateX(90deg);}
40%{-webkit-transform: rotateX(180deg);}
60%{-webkit-transform: rotateX(270deg);}
90%{-webkit-transform: rotateX(360deg);}
100{-webkit-transform: rotateX(360deg);}
}

这是一个 JSFiddle .不要介意动画本身,我知道它并不漂亮,但它仍在进行中。现在我只想正确对齐所有 4 个边。

我做错了什么,如何对齐所有 4 个边?

最佳答案

不知道这是否是最好的方法,但似乎将 position: absolute(和宽度)添加到立方体的两侧,然后仅更改平移“前面”的:

.front {
-webkit-transform: translateZ(-50px);
}

似乎可以正常工作(尽管文本会颠倒显示)。并没有真正检查翻译和旋转属性值本身,所以也许可以避免设置位置,但这是我首先想到的。

关于css - 旋转 CSS 立方体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28021328/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com