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 相关文章推荐
收集的22款给力的HTML5和CSS3帮助工具
Sep 14 HTML / CSS
CSS3点击按钮实现背景渐变动画效果
Oct 19 HTML / CSS
CSS3毛玻璃效果(blur)有白边问题的解决方法
Nov 15 HTML / CSS
详解CSS3阴影 box-shadow的使用和技巧总结
Dec 03 HTML / CSS
基于CSS3的animation属性实现微信拍一拍动画效果
Jun 22 HTML / CSS
CSS3实现彩色进度条动画的示例
Oct 29 HTML / CSS
详解HTML5中的标签
Jun 19 HTML / CSS
html5自带表单验证体验优化及提示气泡修改功能
Sep 12 HTML / CSS
html5教程制作简单画板代码分享
Dec 04 HTML / CSS
使用html5 canvas创建太空游戏的示例
May 08 HTML / CSS
html5清空画布方法(三种)
Oct 16 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
Feb 25 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进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
ie支持function.bind()方法实现代码
2012/12/27 Javascript
jQuery中:has选择器用法实例
2014/12/30 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
2016/09/23 Javascript
微信小程序实现下滑到底部自动翻页功能
2020/03/07 Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
2020/05/23 Javascript
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
python获取糗百图片代码实例
2013/12/18 Python
python处理文本文件并生成指定格式的文件
2014/07/31 Python
Python实现把utf-8格式的文件转换成gbk格式的文件
2015/01/22 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
wxPython实现绘图小例子
2019/11/19 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
python实现经典排序算法的示例代码
2021/02/07 Python
LODI女鞋在线商店:阿利坎特的鞋类品牌
2019/02/15 全球购物
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
亚洲最大的运动鞋寄售店:KicksCrew
2020/11/26 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
客服工作职责
2013/12/11 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
优秀三好学生事迹材料
2014/08/31 职场文书
初中家长评语和期望
2014/12/26 职场文书
政工师工作总结2015
2015/05/26 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang
Logback 使用TurboFilter实现日志级别等内容的动态修改操作
2021/08/30 Java/Android
Linux中文件的基本属性介绍
2022/06/01 Servers