使用CSS3制作响应式导航菜单的方法

  关于使用响应式设计来创建一个手机导航栏,之前我曾经写过一个教程。现在我发现了一种新的方式,可以不使用JavaScript来实现响应式菜单。它完全使用整洁和语义化的HTML5标记,而且菜单可以居左、居中和居右对齐。不像前面一个教程中需要点击来展开,这个菜单可以在hover时展开,对用户更为友好。它也包含一个指示器来显示当前激活的菜单项。这种方式可以工作于所有的移动和桌面浏览器中,甚至包括IE。

  演示

  目标

  这个教程的目标是向你展示如何把一个传统的列表菜单在更小的屏幕上转换为可伸展的菜单。


  这种方式对于下图这种有很多链接的导航来说非常有用。你可以把所有的按钮转换为一个优雅的伸展条。


  HTML代码

  下面是导航的HTML代码。

标签用于创建伸展条,包含绝对定位的css属性。我会在稍后解释这一点,current类表示当前激活的菜单链接。

 

  CSS Code复制内容到剪贴板

  

 

  

 

  

Portfolio

 

  

Illustration

 

  

Web Design

 

  

Print Media

 

  

Graphic Design

 

  

 

  

 

  CSS

  导航的CSS样式(桌面视图)非常简单,所以我不打算介绍细节。请注意我为导航的

  • 元素指定了display:inline-block来取代float:left。这样我们可以通过为

    • 元素设定text-align属性来控制菜单按钮居左、居中或者居右对齐。

     

      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支持

      IE8或更早的版本不支持HTML5的

    标签和媒介查询(MediaQuery)。我们需要引用css3-mediaqueries.js(或者respond.js)和html5shim.js来提供支持。如果你不打算使用html5shim.js,可以把标签用
    代替。

     

      XML/HTML Code复制内容到剪贴板

      

      

      

      

      响应式设计

      现在是最有意思的部分-使用媒介查询创建响应式菜单。如果你对响应式设计不了解,可以看看我之前关于响应式设计和媒介查询的文章。

      在600像素的节点上,我将导航元素设置为相对定位,所以我能把顶部的

    • 菜单列表样式替换为绝对定位。通过设定display:none我隐藏所有的
    • 元素,但是保留了当前激活的
    • 项。然后当鼠标hover在导航栏上时,我将所有的
    • 元素设置为display:block(这会产生伸展列表)。我添加了一个勾选图标在当前栏目上来展示激活状态。对于居中和居右对齐的菜单,使用position的left和right属性来定位
      • 列表。可以根据演示来查看最终结果。

       

        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 10px11px;

        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;

        }

        }

  1.  
时间: 2024-09-19 09:08:26

使用CSS3制作响应式导航菜单的方法的相关文章

用CSS3设计响应式导航菜单 - WEB开发者

来源:http://www.admin10000.com/document/1463.html#jtss-hi

设计响应式导航菜单的5大法则

响应式Web设计(Responsive Web design)的理念是,页面的设计与开发应当根据用户行为以及设备环境(系统平台.屏幕尺寸.屏幕定向等)进行相应的响应和调整.响应式设计允许你在不 同的平台上,创建独一无二的用户体验,与此同时,只要最少的维护工作. 已经有不少文章涉及响应式设计,这些文章帮助我们理解和解剖响应式网站设计的学习指南和教程,揭示媒体查询的作用,与此同时,还提供一些令人兴奋的响应式设计集合. 我们暂且先放开宏观上的响应式Web设计,把目光聚集在更具挑战性的"响应式导航菜单设

网站分析:设计响应式导航菜单的五大法则

中介交易 SEO诊断 淘宝客 云主机 技术大厅 摘要:本文把目光聚集在更具挑战性的响应式Web设计:响应式导航菜单设计,这里提供了五大法则,让你无论在大屏幕还是小屏幕上都能轻松高效地设计响应式导航菜单. 响应式Web设计(Responsive Web design)的理念是,页面的设计与开发应当根据用户行为以及设备环境(系统平台.屏幕尺寸.屏幕定向等)进行相应的响应和调整.响应式设计允许你在不同的平台上,创建独一无二的用户体验,与此同时,只要最少的维护工作. 已经有不少文章涉及响应式设计,这些文

CSS3+Js实现响应式导航条_CSS/HTML

今天制作了一个响应式导航条,能够自动随着不同的屏幕分辨率或浏览器窗口大小的不同而改变导航条的样式,这里主要用到的就是CSS3的Media Query.具体可以查看浅谈响应式布局这篇文章,这里就不花费大量的篇幅介绍了,主要看一下这个导航条该怎么做. 另外需要提到的是,ie6-ie8是不支持CSS3的Media Query的,因此对于ie6-ie8我们需要特殊处理,就让他们保持默认样式,这对于布局及样式上都要考虑到这一点. 首先看一下布局这一块,html代码如下: 复制代码 代码如下: <div c

CSS3 media queries结合jQuery实现响应式导航_jquery

目的: 实现一个响应式导航,当屏幕宽度大于700px时,效果如下: 当屏幕宽度小于700px时,导航变成一个小按钮,点击之后有一个菜单慢慢拉下来:   思路: 1.为了之后在菜单上绑定事件,并且不向DOM中添加多余的节点,在大屏幕中出现的导航和小屏幕中的下拉导航必须是一个.    所以我选择了将导航绝对定位. 2.默认导航列表是出现的,当屏幕宽度小于700px时它隐藏,并且设置position,当屏幕宽度大于700px时,它出现.或者,默认导航列表是隐藏的,当屏幕宽度大于700px时它出现在右侧

BootStrap创建响应式导航条实例代码_javascript技巧

首先你得引入bootstrap与jquery 推荐一个CDN:http://cdn.gbtags.com/index.html 然后就是开始编写HTML代码.如果你不想更改显示效果的话实际上CSS都免去写了2333 因为HTML代码比较多 这里分为三个部分 然后最后再上一份整体HTML代码 首先如上图所示的,实现这个效果需要了解bootstrap的以下几个组件 •导航条 •按钮 •表单 •下拉菜单 实际上以上几个组件的样式有很多.我们只需要了解一部分即可 如需了解更多的请转自http://www

响应式导航的设计模式

在大屏幕上,导航置顶或导航居左是两种典型的设计模式,然而,这两种模式在小屏幕上却遭遇挑战.在响应式设计日渐流行的今天(译者注:其实已经流行了好几年了),我们更有必要重新审视针对小屏幕环境下的导航设计模式.这些通过移动设备访问的页面导航,必须既方便用户快速访问,又不能过于突出. 以下,我列出了 7 种常见的响应式导航的设计模式,它们分别是: 置顶(或"放任自流") 页脚锚点 菜单选择 开关 侧滑 置底 彻底隐藏 上述每种设计模式都各有利弊,大家在选择导航设计方案时,需要根据项目的实际情况

响应式导航有哪几类设计方式?

  在大屏幕上,导航置顶或导航居左是两种典型的设计模式,然而,这两种模式在小屏幕上却遭遇挑战.在响应式设计日渐流行的今天(译者注:其实已经流行了好几年了),我们更有必要重新审视针对小屏幕环境下的导航设计模式.这些通过移动设备访问的页面导航,必须既方便用户快速访问,又不能过于突出. 以下,我列出了 7 种常见的响应式导航的设计模式,它们分别是: 置顶(或"放任自流") 页脚锚点 菜单选择 开关 侧滑 置底 彻底隐藏 上述每种设计模式都各有利弊,大家在选择导航设计方案时,需要根据项目的实际

Bootstrap组件之响应式导航条

响应式导航条:在PC和平板中默认要显示所有的内容:但在手机中导航条中默认只显示"LOGO/Brand",以及一个"菜单折叠展开按钮",只有单击折叠按钮后才显示所有的菜单项.   基础class: .navbar     1.Bootstrap中导航条的按位置: 1)顶部导航条 2)底部导航条    Bootstrap中导航条的按颜色: 1)浅色底深色的字 .navbar-default 2)深色底浅色的字 .navbar-inverse    Bootstrap中导