各位网友,大家好,我是实战互联网技术部的陌上花会开。前一段时间我给大家分享了一系列CSS3实战开发的案例,继续以前的脚步。
在本次CSS3实战开发案例中,我将手把手带领大家开发纯CSS3的手风琴特效开发。一如既往,先给大家演示效果动画:
上面的效果是纯CSS开发的,大家是不是觉得很棒呢。
现在我将分步骤带领大家实战开发今天的特效。首先,编写html源代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="styles.css"> <title>CSS3实战开发:手把手教你CSS3手风琴实战开发</title> </head> <body> <!-- CSS教程,css3教程,html5教程,jquery教程,开发教程,互联网技术,技术分享 --> <div class='accordion'> <ul> <li> <div class='title'><a href="http://www.itdriver.cn">点击查看更多校花美图</a></div> <a href="http://www.itdriver.cn"><img src='imgs/1.jpg'></a> </li> <li> <div class='title'><a href="http://www.itdriver.cn">走近自然,深呼吸</a></div> <a href="http://www.itdriver.cn"><img src='imgs/2.jpg'></a> </li> <li> <div class='title'><a href="http://www.itdriver.cn">只要你敢想,没有不可能</a></div> <a href="http://www.itdriver.cn"><img src='imgs/3.jpg'></a> </li> <li> <div class='title'><a href="http://www.itdriver.cn">实战互联网流量积极攀升</a></div> <a href="http://www.itdriver.cn"><img src='imgs/4.jpg'></a> </li> <li> <div class='title'><a href="http://www.itdriver.cn">爱护大自然,让我们拥有一个绿色的世界</a></div> <a href="http://www.itdriver.cn"><img src='imgs/5.jpg'></a> </li> </ul> </div> </body> </html>
现在看一下尚未应用样式时的页面效果:
接着我们在styles.css中编写样式,首先设置页面的基本布局以及对所有元素设置默认样式:
*{margin:0;padding:0;list-style:none;} /*设置所有元素默认样式*/ a{ text-decoration:none;/*去除超链接默认下划线*/ } img{ border:none; /*去除image默认边框*/ }
根据最开头的演示效果,我们可以发现手风琴的大小是固定的,而且有阴影效果,样式代码如下:
.accordion{ width:800px; /*设置手风琴默认的宽高度*/ height:300px; overflow:hidden; /*隐藏超出手风琴区域的内容*/ margin:80px auto; box-shadow:0 0 10px 2px rgba(0,0,0,0.4); /*设置手风琴区域的阴影效果*/ }
我们从演示效果大概也会发现,默认时手风琴里图片都是显示在一行的,且提示信息title是贴在每个图片的底部。同时title的背景色是半透明的。代码如下:
.accordion ul{width:900px;} .accordion .title{position:absolute;left:0;bottom:0;width:600px;background:rgba(0,0,0,0.5);} .accordion .title a{display:block;color:#fff;font-size:16px;padding:20px;} .accordion li img{display:block;} .accordion li{ display:block; width:160px; height:300px; overflow:hidden; position:relative; float:left; border-left:1px solid #aaa; box-shadow:0 0 25px 10px rgba(0,0,0,0.4); -webkit-transition:all .5s; -moz-transition:all .5s; -ms-transition:all .5s; -o-transition:all .5s; transition:all .5s; }
此时,我们看一下页面效果:
大家发现手风琴的样式已经出来了。直至此时,当鼠标划过手风琴时,并没有我们期待的动态特效。
细心的你会发现,我在li样式上添加了-webkit-transition:all .5s;这一段样式,这是告诉浏览器,当li的属性发生变化时,执行过度效果。如果你对transition不了解,请看我的精通CSS3教程。
现在我就来添加hover事件,一旦鼠标划过手风琴,更改手风琴内部元素的宽度:
.accordion ul:hover li{width:50px;} .accordion ul li:hover{width:600px;}
在上面这段样式中,首先当鼠标划过ul时,设置所有li的宽度为50px,当划过某一具体的li时,设置当前的宽度为600px。这样,你就会发现鼠标划过li元素时,有一个动态的渐变过度效果。现在来看一下运行效果吧!
至此,本次的手风琴特效就开发完了。大家说是不是很简单呢?