css3魔方(一)---立方体

一、魔方由3面,每面9个,一共27个立方体组成,所以要完成魔方的制作,先拆分成单个立方体的制作

先上代码index.html

<!DOCTYPE html>
<html>
<head>
    <title>CSS魔方</title>
    <meta name="author" content="ChenLiang">
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="css/cube.css">
</head>
<body>
<div class="stage">
    <div class="cube">
        <div class="front style"></div>
        <div class="back style"></div>
        <div class="left style"></div>
        <div class="right style"></div>
        <div class="top style"></div>
        <div class="bottom style"></div>
    </div>
</div>
</body>
</html>

1、一个立方体有6个面,分为前后左右上下(fron、back、left、right、top、bottom),定义6个div

2、为了使立方体有3D效果,要使用到transform-styleperspective

.stage{
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-perspective: 2500px;
    background: #333;
}
.cube{
    width: 300px;
    height: 300px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -150px;
    margin-left: -150px;
    -webkit-transform-style: preserve-3d;
    -webkit-transform: rotateX(45deg) rotateY(-45deg);
}

perspective 属性定义 3D 元素距视图的距离,以像素计;(可以实际修改像素值看看变化)

transform-style 属性规定如何在 3D 空间中呈现被嵌套的元素,及被它包含的子元素具有3D效果

3、绘制6个面,需要在3D空间总分别移动各个面到相应的位置,要使用到translateX、translateY、translateZ、rotateX、rotateY、rotateZ

translateX:沿X轴向左(右)移动距离

rotate:绕X轴旋转度数

移动、旋转围绕的点和边默认为div的中心点,可以使用transform-origin改变

①transform-origin:center center  (默认,第一个参数为X轴,第一个参数为Y轴,第三个参数z轴这里不考虑)

此时rotateY(45deg)即绕着b旋转45度

②transform-origin:left  (未修改的默认为center)

此时rotateY(45deg)即绕着b旋转45度

4、cube.css

*{
    margin: 0;
    padding: 0
}

.stage{
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-perspective: 2500px;
    background: #333;
}

.cube{
    /*background: #333;*/
    width: 100px;
    height: 100px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -150px;
    margin-left: -150px;
    -webkit-transform-style: preserve-3d;
    -webkit-transform: rotateX(45deg) rotateY(-45deg);
}

.style{
    position: absolute;
    width: 300px;
    height: 300px;
    border: 2px solid #333;
}

/*前面 沿着Z轴前移150px*/
.cube .front{
    background: #FFFF00;
    transform: translateZ(150px);
    -ms-transform: translateZ(150px);
    -webkit-transform: translateZ(150px);
}

/*后面 沿着Z轴后移150px*/
.cube .back{
    background: #009f41;
    transform: translateZ(-150px) rotateY(180deg);
    -ms-transform: translateZ(-150px) rotateY(180deg);
    -webkit-transform: translateZ(-150px) rotateY(180deg);
}

/*左面 沿着Y轴旋转270度,然后沿着X轴左移一半*/
.cube .left{
    background: #d50010;
    transform: rotateY(270deg) translateX(-50%);
    -ms-transform: rotateY(270deg) translateX(-50%);
    -webkit-transform: rotateY(270deg) translateX(-50%);
    transform-origin: left;
}

/*右面 沿着Y轴旋转-270度,然后沿着X轴右移一半*/
.cube .right{
    background: #fe8a0a;
    transform: rotateY(-270deg) translateX(50%);
    -ms-transform: rotateY(-270deg) translateX(50%);
    -webkit-transform: rotateY(-270deg) translateX(50%);
    transform-origin: right;
}

/*上面 沿着X轴旋转-270度,然后沿着Y轴上移一半*/
.cube .top{
    background: #00469f;
    transform: rotateX(-270deg) translateY(-50%);
    -ms-transform: rotateX(-270deg) translateY(-50%);
    -webkit-transform: rotateX(-270deg) translateY(-50%);
    transform-origin: top;
}

/*下面 沿着X轴旋转270度,然后沿着Y轴下移一半*/
.cube .bottom{
    background: #fff;
    transform: rotateX(270deg) translateY(50%);
    -ms-transform: rotateX(270deg) translateY(50%);
    -webkit-transform: rotateX(270deg) translateY(50%);
    transform-origin: bottom;
}

时间: 2024-11-06 16:31:41

css3魔方(一)---立方体的相关文章

css3制作旋转立方体相册

css3制作旋转立方体相册 首先让我们来看一下最终效果图: 当鼠标放在图片上是介个样子滴: 是不是觉得很好看?那接下来就一起制作吧! 我个人觉得编程,首先是思路,然后是代码,一起分析一下这个效果的思路. 1.背景颜色,它属于一种渐变的背景色(当然这不是重点,可以根据自己的爱好进行设置): 2.我们可以观察一下他是有两个旋转的立方体,大立方体套小立方体: 3.点击图片的时候,外部大立方体向外延伸. 有了这个大体的思路我们就可以开始敲代码了. 1.新建文件夹 将各个不同类型的代码进行归类是很有必要的

基于css3的3D立方体旋转特效

今天给大家分享一款基于css3的3D立方体旋转特效.这款特效适用浏览器:360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 不支持IE8及以下浏览器.效果图如下 : 在线预览   源码下载 实现的代码. html代码: <div class="wrap"> <div class="box1 box"> 1</div> <div class="box2 box">

CSS3实现嵌套立方体旋转的3D效果

刚发现一个网站上面的3D立方体效果挺好看的,就模仿着用CSS3实现了一个类似的效果:http://1.huizit1.applinzi.com//CSS/transform_3D/cube_3D.html 这样的3D透视效果主要是用了perspective和transform-style: preserve-3d;这两个属性.然后在相应的元素上添加transform就行了. 先看一下布局结构: <div class="container"> <div class=&q

css3魔方(二)---魔方

二.完成了小立方体的制作就可以制作大立方体---魔方啦. 思路: 1 .分为前.中.后3面 2.每面9个小立方体 3.鼠标按下移动,魔方相应旋转 4.鼠标滑动某一面(每一面有6中旋转可能)[未完成!] 5.目前只能完成整体旋转和前中后3部分旋转,要想每面都能旋转,看来要重新修改了,应该要动态判断每个小立方体的位置, 然后旋转9个组成一面,然后旋转. 留着慢慢思考解决,待完成了再更新. 直接上代码: index.html <!DOCTYPE html> <html> <head

用CSS3写一个立方体

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <style> /*设置300px的景深 景深基点为左侧*/ .wrap{width:100px;height:100px;padding:100p

简单CSS3代码实现立方体以及3D骰子

1 实现3D立方体 首先准备好UL以及6个Li: 代码如下 ul { position: absolute; top: 50%; left: 50%; transform:translate(-50%,-50%)        // 以上代码主要是使ul居中而已 transform-style: preserve-3d;            // 使子元素保留其3D视角-webkit-perspective: 0;                     //视距离,默认值为0 } li {

css3 - 3d效果立方体

1. 立方体的上下: .cubeBottom{ transform: rotateX(90deg) ; transform-origin:center bottom ; /* :绕x旋转,主要确定y的高度 : right bottom , 1px 300px, 2px 300px,.. 100px 300px .. */ }  2. 立方体的左右: .cubeLeft{ transform: rotateY(90deg) ; transform-origin:left center ; /* :

Web全栈之路 1.CSS3中3D立方体以及3D轮播图

1.3D坐标系 3D坐标可以用左手来模拟,其中大拇指方向默认是X轴正方向,食指方向是Y轴正方向,中指方向是Z轴正方向.注意:当设置transform:rotateX(90deg)时,相当于将X轴转动90°,此时Z轴正方向向上,所以设置transform:translateZ(150px)时,就产生了3D立方体的上面,具体原理可以通过chrome浏览器审查元素来调试. 2.3D视图 transform-style:flat(默认,二维效果) / preserve-3d(三维效果).设置一个元素的t

css3总结(三)立方体、动画、web字体、字体图标、弹性布局、多列布局、伸缩盒子

目录: 1.立方体2.动画3.设置动画的一些属性4.案例:无缝滚动5.web字体6.弹性布局7.多列布局8.弹性布局9.案例:伸缩盒子的flex属性的应用案例(菜单个数不限)10.伸缩盒子的align-items属性     设置侧轴对齐方式11.案例:伸缩盒子,宽高自适应 1.立方体    *transform-style: preserve-3d;/*子元素保留其3d样式*/ <!DOCTYPE html> <html> <head> <title>立方