博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSS:响应式下的折叠菜单(条纹式)
阅读量:4286 次
发布时间:2019-05-27

本文共 2632 字,大约阅读时间需要 8 分钟。

原文:

  译文:CSS:响应式导航菜单

  译者:dwqs

写在之前,关于如何制作响应式的下拉菜单:

之前,我写了一篇关于的教程。现在,我发现了一个新技巧,不用使用JavaScript就能实现响应式菜单,而是使用HTML 5清晰的语义标记。

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

  首先,看看Demo的效果:

一、 目的

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

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

二、Nav HTML标记

三、CSS

/* 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属性改变对齐方式。

/* right nav */.nav.right ul {    text-align: right;}/* center nav */.nav.center ul {    text-align: center;}

五、IE的支持

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

六、响应式

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

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

@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.right ul { left: auto; right: 0; } /* center nav */ .nav.center ul { left: 50%; margin-left: -90px; } }
  •   相关博文推荐:

      10个响应式设计的导航菜单源码:

    Creating a CSS3 Responsive Menu:

    Animenu响应式导航设计教程:

      Demo:

    原文首发:

    你可能感兴趣的文章
    javaScript使用Lodop实现网页表格套打功能
    查看>>
    技术大牛如何寻找下一个风口
    查看>>
    大数据学习路线大纲
    查看>>
    html入门之meta
    查看>>
    mvn不是内部或外部命令,也不是可运行的程序或批处理文件
    查看>>
    JAVA:JDBC连接MySQL数据库
    查看>>
    struts2流程简述
    查看>>
    struts2文件上传和下载
    查看>>
    值栈与OGNL
    查看>>
    struts2标签库--分类入门
    查看>>
    Struts2声明式异常处理
    查看>>
    Web.xml中jsp-config元素简述
    查看>>
    Struts2类型转换和自定义类型
    查看>>
    Java面向对象特征有那些
    查看>>
    hibernate单表继承映射
    查看>>
    继承结构中每个子类单独一张表
    查看>>
    HQL查询-分页-条件-连接-过滤使用
    查看>>
    hibernate加载策略之lazy
    查看>>
    hibernate抓取策略fetch
    查看>>
    Hibernate的N+1条SQL查询问题-------Iterate
    查看>>