Home >Web Front-end >HTML Tutorial >Detailed explanation of the steps to create CSS3 secondary navigation menu

Detailed explanation of the steps to create CSS3 secondary navigation menu

php中世界最好的语言
php中世界最好的语言Original
2018-05-07 17:43:094594browse

This time I will bring you a detailed explanation of the steps to create a CSS3 secondary navigation menu. What are the precautions for creating a CSS3 secondary navigation menu? Here is a practical case, let’s take a look.

If we want to realize the secondary navigation of the web page, we can use JS technology to dynamically display and hide the secondary menu. Of course, we can also use CSS technology to achieve it. And it is recommended to use CSS here because it is more efficient and smoother. Here we will introduce the dynamic display and hiding of secondary menus.

1 Structure

We mainly use ul li tags for the main body of general navigation

<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 Layout

Navigation layout, because the child elements must follow the parent elements, so select the positioning layout for the secondary menu. If you want multiple li to be displayed in one line, you need to float the 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. Secondary menu display special effects

When the cursor is placed on the navigation, the background color of the current element becomes darker and the font color becomes lighter.

If there is a secondary menu, display the secondary menu

In order to achieve the above two special effects, we can use the pseudo class selector (:hover) to capture the cursor hover operation. And use the pseudo-class selector (:hover) to select the secondary menu corresponding to the current menu

Use the following CSS to quickly implement this effect.

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

4. Animation

The display of the secondary menu in the above code is instantaneous. If you can provide a slow animation transition effect, of course it is no problem. Here you need to use animation to configure the animation, so you can write the animation frames yourself or seek support from a third-party code library (animate.css). Here I will use transparency to achieve this fade-in effect

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

After the animation is defined, you can directly reference the animation style to ul.submenu. Note that if you are using animate.css, then the above steps will be omitted. Just use the good animation styles it provides.

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

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:

Detailed explanation of the use of H5 WebWorkers multi-thread development

CSS and media query to realize web page navigation function (attached Code)

The above is the detailed content of Detailed explanation of the steps to create CSS3 secondary navigation menu. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn