.solid { position: relative; width: 80px; height: 80px; transform-style: preserve-3d; transform: rotateX(30deg) rotateY(-45deg); } .solid .face { position: absolute; width: 80px; height: 80px; text-align: center; line-height: 80px; font-size: 24px; font-weight: bold; color: white; opacity: 0.6; } .solid .face1 { transform: translateZ(40px); background-color: blueviolet; } .solid .face2 { transform: rotateY(90deg) translateZ(40px); background-color: skyblue; } .solid .face3 { transform: rotateY(180deg) translateZ(40px); background-color: teal; } .solid .face4 { transform: rotateY(-90deg) translateZ(40px); background-color: yellowgreen; } .solid .face5 { transform: rotateX(-90deg) translateZ(40px); background-color: salmon; } .solid .face6 { transform: rotateX(90deg) translateZ(40px); background-color: orange; }
上述代码是一个六面体的实现方式,使用了多个CSS属性来完成。首先,大家声明了一个父容器,即固体,设置其position为relative,并使用了preserve-3d来保持3D效果。接着,大家添加了6个子容器,即六个不同的面,每个面的大小、颜色和它们在3D视图中的位置(通过translateZ、rotateX、rotateY属性)都不同。在这些面上,大家可以添加需要显示的内容,如文字或图像。
CSS多面体的实现方式有很多种,也可以根据需求自行调整属性,实现更丰富的效果。不过需要注意的是,使用多个面拼凑起来的图形需要特别注意3D视图的深度效果,同时也需要注意浏览器的兼容性。