纯CSS实现下拉菜单及下拉容器等(纯CSS实现导航条及导航下拉容器)

原文:纯CSS实现下拉菜单及下拉容器等(纯CSS实现导航条及导航下拉容器)

 虽然网上类似甚至相同的案例有很多,但是我还是写下,以记下笔记,也可供大家参考

希望大家可以指导批评~~

首先我们以列表ul li 来开始我们菜单也可以说导航条的制作:

在页面中我们首先构建以下XHTML结构:

<body>
  <ul id="navWrapper">
    <li>
      <a href="#">Menu A</a>
      <ul>
        <li><a href="#">Menu A, Item 1</a></li>
        <li><a href="#">Menu A, Item 2</a></li>
        <li><a href="#">Menu A, Item 3</a></li>
        <li><a href="#">Menu A, Item 4</a></li>
        <li><a href="#">Menu A, Item 5</a></li>
        <li><a href="#">Menu A, Item 6</a></li>
      </ul>
    </li>
    <li>
      <a href="#">Menu B</a>
      <div id="test"><a href="#">Menu B, Item 1</a></div>
    </li>
  </ul>
  <div id="banner"></div>
  <div id="content">
    <p>Page content here.</p>
  </div>
</body>

View Code

效果:

接着,我们来一步一步设计样式及功能(先给每个元素加个边框以便后续样式设计区别):

样式代码:

<style>
    ul{
        border:1px solid red;
    }
    li{
        border:1px solid lightgreen;
    }
    div{
        border:1px solid black;
    }
</style>

View Code

效果:

 

这样我们就可以好区分,好设计了~~

下面去掉链接的下滑线和列表的“.”“。”,并且使父级的列表横向排列,子级列表还是纵向排列,这样才像下拉菜单嘛~~(这里是两级列表嵌套,一个父级一个子级)

样式代码:

<style>
    ul{
        border:1px solid red;
    }
    li{
        border:1px solid lightgreen;
    }
    div{
        border:1px solid black;
    }

    a{
        text-decoration:none;
    }
    ul#navWrapper li{
        float:left;
        list-style:none;
    }
    ul#navWrapper li ul li{
        float:none;
    }
    div#banner{
        clear:both;
    }
</style>

View Code

效果:

下面来隐藏子级列表和子级容器(这里子级容器是指id为test的div容器),当鼠标移动到父级列表时相对应的子级列表显现出来,通过“ :hover ”实现,隐藏显现通过display的“ none ”和“ block ”来实现,注意这里不用visibility的“ hidden ”和“ visible ”来实现,至于区别大家可以把相应的属性换成visibility来看看效果,这里就不实现了

样式代码:

<style>
    ul{
        border:1px solid red;
    }
    li{
        border:1px solid lightgreen;
    }
    div{
        border:1px solid black;
    }

    a{
        text-decoration:none;
    }
    ul#navWrapper li{
        float:left;
        list-style:none;
    }
    ul#navWrapper li ul li{
        float:none;
    }
    div#banner{
        clear:both;
    }

    ul#navWrapper ul,ul#navWrapper div#test{
        display:none;
        position:absolute;
    }
    ul#navWrapper li:hover ul,ul#navWrapper li:hover div#test{
        display:block;
    }
</style>

View Code

效果:

这里有一点需要注意,当不设置子级的position为“ absolute ”时,鼠标移动到父级,出现的子级会在页面占据一定的位置,那么“ Page content here ”将会产生移动,这是十分不好的。所以我们设置子级“ position:absolute; ”,这样便可以使它们脱离正常的流程,不影响后面的内容位置!

再将父级位置稍微偏移下和将第一个父级下的自己列表向左偏移与父级边框对齐,并且给第二个父级下的div容器一定的“容积”

样式代码:

<style>
    ul{
        border:1px solid red;
    }
    li{
        border:1px solid lightgreen;
    }
    div{
        border:1px solid black;
    }

    a{
        text-decoration:none;
    }
    ul#navWrapper li{
        float:left;
        list-style:none;
    }
    ul#navWrapper li ul li{
        float:none;

        margin-left:-41px;
    }
    div#banner{
        clear:both;

        height:50px;
        margin-top:30px;
    }

    ul#navWrapper ul,ul#navWrapper div#test{
        display:none;
        position:absolute;
    }
    ul#navWrapper li:hover ul,ul#navWrapper li:hover div#test{
        display:block;
    }

    ul#navWrapper{
        margin-left:-41px;
    }
    ul#navWrapper div#test{
        height:200px;
        width:600px;
        background:lightgray;
    }
</style>

View Code

效果:

将所有边框去掉后这里最基本的结构就设计好了,其他的样式可以随意调整啦~~

 

比如:

将所有边框去掉后,并对整体进行下设计

样式代码:

<style>
    body,div,ul,li{
        padding:0;
        margin:0;
    }
    a{
        text-decoration:none;
    }
    ul#navWrapper li{
        float:left;
        list-style:none;

        height:45px;
        line-height:45px;
    }
    ul#navWrapper li ul li{
        float:none;
    }
    div#banner{
        clear:both;

        height:50px;
        margin-top:50px;
        margin-left:50px;
    }
    div#content{
        margin-left:50px;
    }
    ul#navWrapper ul{
        display:none;
        position:absolute;
        background:#CCC;
    }
    ul#navWrapper div#test{
        display:none;
        position:absolute;
        height:200px;
        width:600px;
        background:#cde6c7;
    }
    ul#navWrapper li:hover ul,ul#navWrapper li:hover div#test{
        display:block;
    }

    ul#navWrapper{
        background:#CCC;
        height:45px;
        width:960px;
        margin:0 auto;
        margin-top:30px;
    }

    li a{
        font-size:24px;
        color:#333;
        display:block;
        height:45px;
        padding:0 20px;
    }
    li a:hover{
        color:#fff;
        background:#000;
    }
</style>

View Code

效果:

  图一:

   图二:

 OK!这就是在以上基本结构上设计的一个例子了。如果还需要设计,只需要在以上最基本结构上设计就行了~~

 

参考文献:微软官方文档“如何创建CSS下拉菜单”

 

时间: 2024-08-30 22:02:43

纯CSS实现下拉菜单及下拉容器等(纯CSS实现导航条及导航下拉容器)的相关文章

javascript实现的鼠标悬停时动态翻滚的导航条_导航菜单

网页特效 工具软件 源码下载 菜单导航 层和布局 论坛社区 广告联系

用CSS 快速定制下拉菜单

css|菜单|下拉 访问过 Microsoft 中文主页的很多人都不会忘记它新奇的下拉式菜单吧. 它的确给我们带来一股清新的网风, 它实现了网页上下拉菜单, 不仅剩去了很多点击的麻烦, 并开创了一个网页设计的未来之路.  我们知道, 通过 CSS 可以确切地定义一个 HTML 元素的样式,包括它的颜色.字体.边框.3D效果.滤镜等等,我们在考虑制作下拉菜单时,首先是想到 CSS 的定位技术,它精确的定位能力可以使我们放心的甚至是在三维空间设置位置和可见性.  CSS 定位使用"position&

30多个CSS和JS下拉菜单资源

导航菜单是网站设计中最重要的 因素之一.网络开发人员可以使用CSS创建方便用户的横向或纵向导航菜单, 而JavaScript则使人们有可能创造更多的互动,更多的响应和更灵活的导航到任何网站.Noupe在这篇文章里面提出了25个以上(横向和纵向)多 层次的下拉菜单,包括使用了JavaScript和CSS ,你可以将这些示例和教程用你的未来网站设计计划.帕兰照常为你翻译, 你也可以查看帕兰映像之前发表的一些关于菜单应用的文章: IzzyMenu: 在线创建DHTML/CSS菜单 9款CSS菜单生成器

CSS3实例教程:CSS3下拉菜单代码解析

上个星期我发布了一篇CSS3下拉菜单,有人反映说我将CSS代码解释的不够详细.那么,这篇文章将会对新的CSS属性作出解释,包括:text-shadow,box-shadow和border-radius.这些CSS3属性是最常用到的,了解它们准没错. RGBA 前三个值是RGB颜色值,最后一个值表示透明程度(0代表完全透明,1代表完全不透明). RGBA可以应用于任何设计颜色的属性,例如文字颜色.边框颜色.背景颜色.阴影颜色等等. 文字阴影 文字阴影按照如下顺序组织:x-offset,y-offs

使用 JavaScript 创建 FrontPage 下拉菜单

frontpage|javascript|菜单|创建|下拉 摘要: 当您在 Internet 上进行浏览时,到处都在使用各种类型的下拉菜单,但如果您曾经尝试创建过一种类型的下拉菜单的话,就会了解此过程可能并非总是非常简单.本文解释了创建您自己的下拉菜单所需的脚本和样式. 下拉菜单简介 Internet 上几乎每个站点都存在某种种类的下拉菜单.您可能会发现,简单的下拉菜单会在网页的上部水平排列,复杂些的会级联子菜单,有些使用带有鼠标停留效果的图形,还有一些在网页的左侧或右侧竖直排列.如果您想过在自

使用jquery 简单实现下拉菜单

 Jquery 是一个轻量的框架,个人认为非常好用,今天就写一个非常简单的例子,实现下拉菜单功能: 首先肯定要在页面引用jquery.js 版本不限 : 接下来把=====================html贴出来:   代码如下: <div class="header_menu"> <ul> <li class="menuli" id="xtgl_menu">系统管理</li> <li

Bootstrap&lt;基础十四&gt; 按钮下拉菜单

原文:Bootstrap<基础十四> 按钮下拉菜单 使用 Bootstrap class 向按钮添加下拉菜单.如需向按钮添加下拉菜单,只需要简单地在在一个 .btn-group 中放置按钮和下拉菜单即可.也可以使用 <span class="caret"></span> 来指示按钮作为下拉菜单. 下面的实例演示了一个基本的简单的按钮下拉菜单: <!DOCTYPE html> <html> <head> <ti

jQuery实现二级下拉菜单效果_jquery

大家都知道jQuery是一个框架,它对JS进行了封装,使其更方便使用.前面两篇博文分别是用CSS样式和JS实现的,那么这篇就用jQuery来实现二级下拉式菜单. 使用JQuery实现需要用到的知识有:        1)使用$(function(){...})获取到想要作用的HTML元素.        2)通过使用children()方法寻找子元素.        3)通过使用show()方法来显示HTML元素.        4)通过使用hide()方法来隐藏HTML元素.        5

JS实现样式清新的横排下拉菜单效果_javascript技巧

本文实例讲述了JS实现样式清新的横排下拉菜单效果.分享给大家供大家参考.具体如下: 这是一款灰色调横排清新的下拉菜单,完全符合WEB标准,兼容性不错,菜单简洁好用,适合大部分的网页风格.如果色调不是你想要的,自己发挥聪明才智,修改一下吧. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-simple-style-hp-menu-demo/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML