手机
当前位置:查字典教程网 >网页设计 > Div+Css教程 >纯CSS制作的响应式折叠菜单分享
纯CSS制作的响应式折叠菜单分享
摘要:这个菜单能居左、居中和居右对齐,不像之前文章提到的菜单需要靠点击在显示和隐藏之间进行切换。它也有一个标记显示激活/当前菜单项,并且它能作用在...

这个菜单能居左、居中和居右对齐,不像之前文章提到的菜单需要靠点击在显示和隐藏之间进行切换。它也有一个标记显示激活/当前菜单项,并且它能作用在所有移动平台和包括IE在内的所有桌面浏览器。

首先,看看Demo的效果:Demo

一、 目的

本教程的目的是展示如何将规律的列表菜单变成一个较小的显示下拉菜单。

纯CSS制作的响应式折叠菜单分享1

这个技巧在由许多链接组成的导航上非常有用,例如下面的截图,可以将所有按钮压缩成一个优雅的下拉。

纯CSS制作的响应式折叠菜单分享2

二、Nav HTML标记

XML/HTML Code复制内容到剪贴板 <navclass="nav"> <ul> <liclass="current"><ahref="#">Portfolio</a></li> <li><ahref="#">Illustration</a></li> <li><ahref="#">WebDesign</a></li> <li><ahref="#">PrintMedia</a></li> <li><ahref="#">GraphicDesign</a></li> </ul> </nav>

三、CSS

CSS Code复制内容到剪贴板 /*nav*/ .nav{ position:relative; margin:20px0; } .navul{ margin:0; padding:0; } .navli{ margin:05px10px0; padding:0; list-style:none; display:inline-block; } .nava{ padding:3px12px; text-decoration:none; color:#999; line-height:100%; } .nava:hover{ color:#000; } .nav.currenta{ background:#999; color:#fff; border-radius:5px; }

四、居中和右对齐

正如前面提到的,可以同过text-align属性改变对齐方式。

CSS Code复制内容到剪贴板 /*rightnav*/ .nav.rightrightul{ text-align:rightright; } /*centernav*/ .nav.centerul{ text-align:center; }

五、IE的支持

在IE 8以及更早版本中,是不支持HTML5的nav标签和媒体查询。引入css3-mediaqueries.js(或 respond.js) 和 html5shim.js 提供后备的兼容处理。如果你不想用html5shim.js,可以用div代替nav

CSS Code复制内容到剪贴板 <!--[ifltIE9]> <scriptsrc="http://css3-mediaqueries-js.googlecode.com/files/css3-mediaqueries.js"></script> <scriptsrc="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]—>

六、响应式

现在有趣的部分来了——媒体查询菜单的响应性。如果你对响应式设计不熟悉,可以阅读之前我写的关于responsive design (后续翻译)and media query的文章。

在600 px断点,我把nav元素设置成相对定位,这样,我就能对ul元素进行绝对定位了。通过display:none,我隐藏了所有的li元素,但保持当前的li元素以块元素显示。然后,当鼠标悬浮于nav元素时,将所有li添加display:block.为了标记当前的li元素,我会添加一个图标。对于居中和右对齐,对定位的ul元素使用left和right属性。看看最终的Demo效果:

CSS Code复制内容到剪贴板 @mediascreenand(max-width:600px){ .nav{ position:relative; min-height:40px; } .navul{ width:180px; padding:5px0; position:absolute; top:0; left:0; border:solid1px#aaa; background:#fffurl(images/icon-menu.png)no-repeat10px11px; border-radius:5px; box-shadow:01px2pxrgba(0,0,0,.3); } .navli{ display:none;/*hideall<li>items*/ margin:0; } .nav.current{ display:block;/*showonlycurrent<li>item*/ } .nava{ display:block; padding:5px5px5px32px; text-align:left; } .nav.currenta{ background:none; color:#666; } /*onnavhover*/ .navul:hover{ background-image:none; } .navul:hoverli{ display:block; margin:005px; } .navul:hover.current{ background:url(images/icon-check.png)no-repeat10px7px; } /*rightnav*/ .nav.rightrightul{ left:auto; rightright:0; } /*centernav*/ .nav.centerul{ left:50%; margin-left:-90px; } }

【纯CSS制作的响应式折叠菜单分享】相关文章:

CSS导航菜单制作教程

用CSS设计高用户体验的web文字大小

用CSS实现简单的进度条

CSS中em和px的区别

CSS常用样式效果

CSS3 media queries + jQuery实现响应式导航

宽度百分比单位的转换公式及示例

纯CSS实现鼠标悬停提示的方法

CSS学习中的一些技巧

纯CSS做的带开关的台灯

精品推荐
分类导航