CSS3 二级导航菜单的制作的示例


Posted in HTML / CSS onApril 02, 2018

如果想要实现网页的二级导航,我们可以使用JS技术,动态的显示和隐藏二级菜单,当然也可以使用CSS技术来实现。并且这里推荐使用CSS,因为其效率更高,更流畅。这里将介绍二级菜单的动态显示与隐藏。

1 结构

一般导航的主体我们主要是使用ul li标签

<body>
    <header>
        <!-- 一级导航开始 -->
        <nav>
            <ul class="menu">
                <li>
                    <a href="#">首页</a>
                </li>
                <li>
                    <a href="#">产品</a>
                    <!-- 二级导航开始 -->
                    <ul class="submenu">
                        <li><a href="#">小程序</a></li>
                        <li><a href="#">微信</a></li>
                        <li><a href="#">企业站</a></li>
                    </ul>
                    <!-- 二级导航结束 -->
                </li>
                <li>
                    <a href="#">服务</a>
                    <!-- 二级导航开始 -->
                    <ul class="submenu">
                        <li><a href="#">技术支持</a></li>
                        <li><a href="#">产品外包</a></li>
                    </ul>
                    <!-- 二级导航结束 -->
                </li>
                <li><a href="#">关于我们</a></li>
                <li><a href="#">人才招聘</a></li>
            </ul>
        </nav>
        <!-- 一级导航结束 -->
    </header>
</body>

2 布局

导航的布局,由于子元素要随着父元素,所以对二级菜单选取定位布局。要想让多个li在一行中显示,那么就需要让li进行浮动。

body{margin: 0; font-size: 14px; color: #666}
        ul,ol{margin: 0;padding: 0; list-style: none;}
        a {text-decoration: none; color: #666;}
        /*一级导航*/
        /*背景色*/
        ul.menu,ul.submenu {
            background-color: #ededed;
        }
        /*一级导航浮动*/
        ul.menu::after {
            content: '';
            display: block;
            clear: both;
        }
        ul.menu > li {
            float: left;
            width: 120px;
            line-height: 3em;
            height: 3em;
            text-align: center;
            cursor:pointer;
        }
    
        /*二级导航项分割线*/
        ul.submenu {
            /*默认隐藏*/
            display: none;
        }
        ul.submenu > li {
            border-bottom: 1px solid #fff;
        }
        
        /*内容区*/
        .content {
            min-height: 800px;
            background-color: #fff;
        }

3. 二级菜单显示特效

光标放到导航上,当前元素背景色变深,字体颜色变淡。

如果有二级菜单,显示二级菜单

为了实现上述两个特效,我们可以利用伪类选择器(:hover)来捕捉光标悬浮的操作。并且使用伪类选择器(:hover)来选择到当前菜单对应的二级菜单

利用如下CSS可以快速实现该特效。

/*选中特效*/
        ul.menu > li:hover {
            background-color: #666;
        }
        ul.menu > li:hover > a {
            color: #fff;
        }
        ul.menu > li:hover > ul.submenu {
            display: block;
        }

4. 动画

上述代码中二级菜单的显示是瞬间的。能否提供一个缓慢动画过渡的效果,当然也是没问题。这里需要使用animation来进行动画的配置,那么动画帧可以自己写或者是寻求第三方代码库(animate.css)的支持。这里我将使用透明度来实现这个淡入效果

/*动画帧*/
        @keyframes fade {
            from {
                opacity: 0;
            }
            to {
                opacity: 1;
            }
        }
        /*基础动画样式*/
        .animated {
            animation-duration: 1s;
            animation-fill-mode: both;
        }
        .fadeIn {
            animation-name: fade;
            animation-direction: normal;
        }

动画定义好后,可以直接将动画样式引用到ul.submenu上,注意,如果使用的是animate.css,那么上述步骤将省略,直接用其提供好的动画样式即可。

 

<!-- 二级导航开始 -->
        <ul class="submenu animated fadeIn">
            <li><a href="#">小程序</a></li>
            <li><a href="#">微信</a></li>
            <li><a href="#">企业站</a></li>
        </ul>
        <!-- 二级导航结束 -->

CSS3 二级导航菜单的制作的示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3轻松实现圆角效果
Nov 09 HTML / CSS
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
Sep 02 HTML / CSS
CSS3 display知识详解
Nov 25 HTML / CSS
CSS3打造百度贴吧的3D翻牌效果示例
Jan 04 HTML / CSS
css3实现多个元素依次显示效果
Dec 12 HTML / CSS
css3实现平移效果(transfrom:translate)的示例
Nov 13 HTML / CSS
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
Jan 30 HTML / CSS
使用HTML5拍照示例代码
Aug 06 HTML / CSS
HTML+CSS+JavaScript实现图片3D展览的示例代码
Oct 12 HTML / CSS
Html5原生拖拽相关事件简介以及基础实现
Nov 19 HTML / CSS
关于flex 上下文中自动 margin的问题(完整例子)
May 20 HTML / CSS
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
Dec 06 HTML / CSS
CSS3实现全景图特效示例代码
Mar 26 #HTML / CSS
css3新单位vw、vh的使用教程
Mar 23 #HTML / CSS
巧用CSS3的calc()宽度计算做响应模式布局的方法
Mar 22 #HTML / CSS
利用css3径向渐变做一张优惠券的示例
Mar 22 #HTML / CSS
css3 边框、背景、文本效果的实现代码
Mar 21 #HTML / CSS
利用CSS3 动画 绘画 圆形动态时钟
Mar 20 #HTML / CSS
css3 矩阵的使用详解
Mar 20 #HTML / CSS
You might like
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
php去除html标记的原生函数详解
2015/01/27 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
thinkphp框架page类与bootstrap分页(美化)
2017/06/25 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
可插入图片的TEXT文本框
2013/12/27 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
AngularJS常见过滤器用法实例总结
2017/07/06 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
2018/11/07 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
Python中threading模块join函数用法实例分析
2015/06/04 Python
python实现井字棋游戏
2020/03/30 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
解决Python使用列表副本的问题
2019/12/19 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
Django Auth用户认证组件实现代码
2020/10/13 Python
详解Scrapy Redis入门实战
2020/11/18 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
HTML5实现无刷新修改URL的方法
2019/11/14 HTML / CSS
实习鉴定评语
2014/01/19 职场文书
烹调加工管理制度
2014/02/04 职场文书
数学教研活动总结
2014/07/02 职场文书
七一建党节慰问信
2015/02/14 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
60条职场经典语录,总有一条能触动你的心
2019/08/21 职场文书