【发布时间】:2016-01-24 18:20:07
【问题描述】:
我正在尝试制作一个 CSS 四面体,因此我通过做一些 CSS3 三角形并使用透视属性激活 3D 转换来解决这个问题。
但是我有一些问题需要考虑所有的转换,这是我的一些代码:
.navbar-brand-logo {
width: 64px;
height: 64px;
transform-style: preserve-3d;
perspective: 600px;
position: relative;
}
.face {
width: 0;
height: 0;
position: absolute;
border-style: solid;
border-width: 64px 32px 0 32px;
transform-origin: 0 0;
border-color: transparent transparent transparent rgba(50, 50, 50, 0.6);
}
.logo-base-left {
transform: rotateX(180deg) translateY(-64px);
}
.logo-base-right {
transform: rotateY(180deg) rotateX(180deg) translateY(-64px);
}
.logo-up {
border-color: transparent transparent transparent rgba(50, 50, 50, 0.8);
transform: rotateY(180deg) scaleY(0.5) translateY(-64px);
}
.logo-down-up {
border-color: transparent transparent transparent rgba(50, 50, 50, 0.9);
border-width: 64px 0 0px 4px;
transform: scaleX(128px) translateZ(0px);
}
<section class="navbar-brand-logo">
<figure class="face logo-base-left"></figure>
<figure class="face logo-base-right"></figure>
<figure class="face logo-up"></figure>
<figure class="face logo-down-up"></figure>
</section>
我无法想象如何制作另外两张脸(左上一张和右一张)。
这是一个CodePen,它说明了当前的尝试:
此外,使用 CSS3 四面体作为徽标是个好主意吗? 如果是 SVG 会更好吗?
由于浏览器支持,WebGL / Canvas 是一个禁忌。
【问题讨论】:
-
您确定浏览器支持吗?请参阅stemkoski.github.io/Three.js/Shapes.html:它适用于大多数现代浏览器
-
@vals:说实话,我觉得 WebGL 最大的问题是 Linux 上的视频驱动程序。我问自己 WebGL 与 3D CSS 之间的性能。手机呢?
-
未来会有 SVG 3D,但目前只有 2D 支持 svg。
标签: css svg css-shapes css-transforms