本文摘自PHP中文网,作者黄舟,侵删。
摘要:Accordion(手风琴,又名"抽屉")效果,因其收展样式形如手风琴而得名。通过层级关系,在信息展示和页面布局上,达到巧妙的平衡。因此,广泛运用于Web以及App交互设计中。在以往的项目中Accordion通常是由JavaScript编码实现。本次分享,着重探索两种不依靠JS,采用纯CSS3或HTML5来实现其效果。并对其优缺点作初步的对比。传统JS实现方式
1、原生JavaScript
2、调用JS库文件,jQuery、jQuery Mobile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
复制代码缺点:效率低,成本高,行为和样式耦合紧密。
CSS3 伪类:target
target 是 CSS3 中新增的伪类之一。其能通过锚点,为目标元素添加指定的样式。因其页面中锚点的唯一性,能实现互斥的轮换效果。
示例代码1:h1一级目录/h1>
1 2 3 4 5 6 7 8 9 |
|
复制代码
1 2 3 |
|
复制代码示例代码2:c1">一级目录/a>/h1>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
复制代码
1 2 3 |
|
复制代码示例代码3:div id="ac1" >
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
复制代码
1 2 3 4 5 |
|
复制代码Css3 伪类:targetl 缺点:1、不具有二元性。2、过渡动画高度不可自动获取。
HTML5 标签 summary & details
summary & details是HTML5中两个新标签,除了具有很强的语义化之外,它还有令人惊喜的动态效果。因此,抓住这一特性,我们也能很容易的制作出轻量级的手风琴效果来。一般来讲,应该成对使用这两个标签。
示例代码1:details>
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
复制代码默认样式:可以给details添加open属性,使详情默认展开。 该标签目前仅webkit内核支持。
示例代码2:details>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
复制代码说明:可以嵌套使用,形成三级活更多级别菜单。
1 2 3 4 5 6 7 |
|
复制代码缺点:1、不具有互斥性。2、目前还不支持过渡动画效果。
小 结JS实现accordion效果,成本高,效率低,目前而言能实现最为丰富的效果。 CSS3实现accordion效果,成本低,效率高,虽可以实现丰富的动画效果,但不具有二元性。HTML5实现accordion效果,成本低,效率高,但缺乏动画效果,且不具有互斥性。目前支持的浏览器内核有限。
展 望 CSS3 和 HTML5 的引入和发展,某种程度上进一步推进结构,样式,行为三者分离的Web设计的理念。从而减小表现上对JS的依赖,降低网页制作的成本且提高网页运行的效率。 没有理由不期待css3和HTML5不断完善,假以时日能够提供更为强大的功能。
建 议
在含有内容较多的web app中,基于性能优先的原则,适当优雅降级,采用HTML5标签实现Accordion效果。至少Html5doctor作者是比较推崇 Wordpress 中采用的。
以上就是详解HTML5应用中accordion三种效果的探索的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
HTML5 figure标签是什么意思?HTML5 figure标签的使用方法详解
HTML5-xmlhttprequest level 2概述详解
更多相关阅读请进入《HTML5》频道 >>
Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者