具体步骤如下:
一、立方体结构中,使用一个wrapper div来包裹立方体。在里面使用6个div来制作立方体的6个面。
二、立方体的每一个面都有它自己的元素。我们稍后会使用CSS来将立方体的6个面放置到正确的位置上。
三、在立方体的CSS样式中,首先要关注的是立方体的wrapper div。为了制作3D效果,我们需要为它提供一个 CSS perspective。
四、CSS perspective属性是一个比较复杂的CSS3属性。最好的理解它的方法是看完文档后,自己动手修改一下DEMO中的perspective属性来看看它的变化。
下面需要给包含立方体6个面的立方体的容器.cube提供样式:
1、.cube {
position: relative
width: 200px
transform-style: preserve-3d
2、给立方体容器200像素的宽度,并设置为相对定位,这样在它里面的立方体的6个面可以设置为绝对定位。
3、preserve-3d属性确保所有6个面都处于3D立体状态。
4、在为6个面设置它们的位置之前,先给它们一些通用的样式:
.cube div {
position: absolute
width: 200px
height: 200px
}
5、在进过上面对立方体6个面的一系列设置之后,现在我们可以为6个面制作变形效果,以使它们组装为一个立方体。
6、rotateY的值可以旋转立方体的各个面,使上面的文字处于正确的位置上。
7、而 translateZ 的值使元素在指定容器中向前或向后移动。translateY的值看起来有些混乱,但是请记住,它的作用是通过透明的面板来使指定的面升高或降低来制作3D效果。
8、每一个面都有自己的translations值来使它们处于适当的位置上。你可以自己修改一下这些值来看看效果。
效果图成型如下,颜色,其他的高度可以根据自己的需要进行调节,大概布局已完成,具体内容自行填充,CSS和JS部分自行分离
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin: 0padding: 0
}
html,body{
width: 100%
height: 100%
}
#logo{
width: 100%
height: 20%
background: #40E0D0
}
#list{
width: 100%
/*height: 50px*/
}
ul>li{
width: 25%
/*height: 50px*/
float: left
list-style: none
text-align: center
line-height: 50px
}
select{
width: 100%
height: 50px
}
#content{
width: 100%
height: 70%
}
#left{
float: left
width: 80%
height: 100%
background: red
}
#right{
float: right
width: 20%
height: 100%
background: yellow
}
#right>a{
display: block
width: 100px
height: 50px
margin-top:50px
text-align: center
line-height: 50px
background: blueviolet
margin-left:30%
}
#text{
height: 40%
}
#image{
width: 100%
height: 60%
background-size:100% 100%
}
ul>li:nth-child(1)>select{background: aqua}
ul>li:nth-child(2)>select{background: greenyellow}
ul>li:nth-child(3){background: fuchsia}
ul>li:nth-child(4){background: yellowgreen}
</style>
</head>
<body>
<div id="logo">
logo,这个部分可以是一张图片或者,"canvas"
</div>
<div id="list">
<ul>
<li>
<select >
<option>子菜单1——1</option>
<option>子菜单1——2</option>
</select>
</li>
<li><select>
<option>子菜单2——1</option>
<option>子菜单2——2</option>
</select></li>
<li>
<a>菜单3 </a>
</li>
<li><a>菜单3</a></li>
</ul>
</div>
<div id="content">
<div id="left">
<div id="text">
立体文字还没有研究
</div>
<div id="image">
背景轮播图片,每7秒一张,首次加载有点慢。你也可以跟换成本地图片。
</div>
</div>
<div id="right">
<a>右一</a>
<a>右二</a>
</div>
</div>
<script type="text/javascript">
var backimage=document.getElementById("image")
var arr=["https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529266314739&di=74c33905bd73f947c301bd75b59c3d66&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F013a4456f2626f32f875a944208731.jpg%402o.jpg","https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2791035250,4080821670&fm=27&gp=0.jpg","https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529266314735&di=935f676360cccf324acfff0c2f7be96f&imgtype=0&src=http%3A%2F%2Fattach.bbs.miui.com%2Fforum%2F201408%2F20%2F183224gyeqynrs9irs0b0r.gif","https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529265955947&di=0c66ddc401aa728c1698f189ca1ce16f&imgtype=0&src=http%3A%2F%2Fattachments.gfan.com%2Fforum%2F201509%2F23%2F140610ebbookekbr1qbte1.jpg","https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529265955946&di=d50620ba96dc70d26a0b356c19cc7fc6&imgtype=0&src=http%3A%2F%2Fpic1.win4000.com%2Fwallpaper%2Fd%2F570f4a85c88e6.jpg", ]
var i=-1
function backimg(){
i++
if( i>arr.length-1){
i=0
}
backimage.style.backgroundImage="url("+arr[i]+")"
setTimeout(backimg,7000)
}
backimg()
</script>
</body>
</html>
教你如何制作具有立体感效果的我们详细的解释与说明CSS代码,看它是如何控制这个UL LI打造CSS横向菜单的:* {font-size:12px text-align:center}#nav {width:520px border-bottom:1px solid #06f margin:20px auto 0 auto}#nav li {display: inline list-style-type: none}#nav li a:link,#nav li a:visited {float:left margin-right:5px padding:5px 10px 5px 8px text-decoration: none color:#000 background:#ffe67d border-left: 5px solid #fc0}#nav li a:hover {color:#060 border-left: 5px solid #f60}首先我们进行了整体布局声明,声明了文字大小及居中的对齐方式。需要说明的是,在ff中,我们设置margin:0 auto。即可实现容器的居中了,但在IE中,这还不够,还需要在父容器中声明text-align:center。这一点我们要记得,不然容易出错。声明UL无序列表的宽度为520ox,下边框一象素的实现,颜色为#06f。我们设置了nav这个UL,距离顶部为20px、距离底部为零,左右的距离为auto。这就实现了nav在水平方向内是居中的,垂直方面上距离浏览器窗口20px。声明LI列表项为内联(行内)显示,列表预设标记为无。我们重点需要理解#nav li a:link,#nav li a:visited的定义,设置链接的样式。向左浮动,并且右边距为5px。这是设置链接元素从左向右排行,并且元素之间的右部间隔5px。设置填充,顶5px、右10px、下5px、左8px。这一设置可以使我们的链接文字处于合适的位置。取消链接文字的下划线,并设置链接文字的颜色为#000。链接元素的背景色为#ffe67d。左边框五象素的实线,颜色为#fc0。这一句话形成了我们的小竖条。我们通过下面#nav li a:hover形成鼠标激活的样式。链接文字的颜色变为#060。左边框五象素的实线,颜色为#f60。这样我们会动的小竖条菜单就制作完成了。看最终的代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/htmlcharset=gb2312" /><title>免费模板</title><style type="text/css">* {font-size:12px text-align:center}#nav {width:520px border-bottom:1px solid #06f margin:20px auto 0 auto}#nav li {display: inline list-style-type: none}#nav li a:link,#nav li a:visited {float:left margin-right:5px padding:5px 10px 5px 8px text-decoration: none color:#000 background:#ffe67d border-left: 5px solid #fc0}#nav li a:hover {color:#060 border-left: 5px solid #f60}</style></head><body><ul id="nav"> <li><a href="#">图象设计</a></li> <li><a href="#">网站运营</a></li> <li><a href="#">网络编程</a></li> <li><a href="#">创业指南</a></li> <li><a href="#">网站欣赏</a></li></ul></body></html>