建站学习网,专业提供各类建站教程,网页素材,SEO资讯等建站资源!

网站模板_网站源码_网站素材_建站教程_建站学习网

当前位置:建站学习网 > DIV+CSS教程 > DIV CSS教程 >

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

更新时间:2016-12-29整理编辑:建站学习网阅读:0

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

  首先,看看Demo的效果:Demo

  一、 目的

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

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

  二、Nav HTML标记

XML/HTML Code复制内容到剪贴板
  1. <nav class="nav">
  2. <ul>
  3. <li class="current"><a href="#">Portfolio</a></li>
  4. <li><a href="#">Illustration</a></li>
  5. <li><a href="#">Web Design</a></li>
  6. <li><a href="#">Print Media</a></li>
  7. <li><a href="#">Graphic Design</a></li>
  8. </ul>
  9. </nav>

 

  三、CSS

  CSS Code复制内容到剪贴板

  /* nav */

  .nav {

  position: relative;

  margin: 20px 0;

  }

  .nav ul {

  margin: 0;

  padding: 0;

  }

  .nav li {

  margin: 0 5px 10px 0;

  padding: 0;

  list-style: none;

  display: inline-block;

  }

  .nav a {

  padding: 3px 12px;

  text-decoration: none;

  color: #999;

  line-height: 100%;

  }

  .nav a:hover {

  color: #000;

  }

  .nav .current a {

  background: #999;

  color: #fff;

  border-radius: 5px;

  }

  四、居中和右对齐

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

  CSS Code复制内容到剪贴板

  /* right nav */

  .nav.rightright ul {

  text-align: rightright;

  }

  /* center nav */

  .nav.center ul {

  text-align: center;

  }

  五、IE的支持

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

  CSS Code复制内容到剪贴板

  1. <!--[if lt IE 9]>
  2. <script src="http://css3-mediaqueries-js.googlecode.com/files/css3-mediaqueries.js"></script>
  3. <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
  4. <![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复制内容到剪贴板

  @media screen and (max-width: 600px) {

  .nav {

  position: relative;

  min-height: 40px;

  }

  .nav ul {

  width: 180px;

  padding: 5px 0;

  position: absolute;

  top: 0;

  left: 0;

  border: solid 1px #aaa;

  background: #fff url(images/icon-menu.png) no-repeat 10px 11px;

  border-radius: 5px;

  box-shadow: 0 1px 2px rgba(0,0,0,.3);

  }

  .nav li {

  display: none; /* hide all

  • items */

     

      margin: 0;

      }

      .nav .current {

      display: block; /* show only current

  • item */

     

      }

      .nav a {

      display: block;

      padding: 5px 5px 5px 32px;

      text-align: left;

      }

      .nav .current a {

      background: none;

      color: #666;

      }

      /* on nav hover */

      .nav ul:hover {

      background-image: none;

      }

      .nav ul:hover li {

      display: block;

      margin: 0 0 5px;

      }

      .nav ul:hover .current {

      background: url(images/icon-check.png) no-repeat 10px 7px;

      }

      /* right nav */

      .nav.rightright ul {

      left: auto;

      rightright: 0;

      }

      /* center nav */

      .nav.center ul {

      left: 50%;

      margin-left: -90px;

      }

      }

本文网址:https://www.dedexuexi.com/divcss/jc/1644.html

本站部分文章搜集与网络,如有侵权请联系本站,转载请说明出处。

标签:技巧
收藏此文 赞一下!() 打赏本站

如本文对您有帮助,就请建站学习网抽根烟吧!

支付宝打赏
微信打赏
CSS控制ul缩进间距和去掉li点的方法
« 上一篇2016年12月29日
CSS控制文字在Div最底部显示
2016年12月29日下一篇 »
  • DIV CSS如何给文字字体添加下划线?
    0阅读
    在css中可以使用text-decoration属性或border-bottom属性来给文字添加下划线样式。下面本篇文章就来给大家介绍一下,希望对大家有所帮助。方法1:使用text-decoration属性设置css的text-decoration属性用于指定添加到文本的修饰,其underline属...
  • 纯CSS3实现带动画效果导航菜单无需js
    0阅读
    随着互联网的发展,网页能表现的东西越来越多。由最开始单纯的文字和链接构成的网页,到后来的表格布局,再到div+css模式,现在发展到了 html+css3。网页能表达的东西越来越多,css3兴起已经
  • CSS定义超链接四个状态的正确顺序L-V-H-A
    0阅读
    css定义超链接是要有先后顺序的。否则,在某些浏览器里面有可能会出现某个样式不起作用的bug。不能正确显示想要的效果。 CSS属性的排列顺序: L-V-H-A 。 L-V-H-A是link、visited、hover、active的简写
  • 在ie7下css居中样式text-align:center;偏左问题解决方法
    0阅读
    css样式text-align:center;在ie7下偏左问题,想必有很多朋友的遇到过吧,下面有个不错的方法,大家可以参考下,希望对大家有所帮助 复制代码 代码如下: body { text-align:center; } 用ie7打开是居左的。
  • 对div盒子模型使用心得总结
    0阅读
    相信每一个从事web开发的人对盒子模型都有一个特殊的理解吧,本文也有一个理解并附有示例代码,喜欢的朋友可以参考下 盒子模型的计算 外边距(margin)+边框(border)+内边距(padding)+内容(content
 
QQ在线咨询