• 预防新型冠状病毒科普宣传网站之header导航栏(2020年7月22日)


    网站的头部份(header)包括一个部分导航栏;现在的需求是当页面往下拉时,导航菜单固定,而且处于浏览器的最上面。那么我们现在就来实现它:

    1.header标签

    在HTML5版本之前习惯使用div标签布局网页,在HTML5在div标签基础上新增header标签元素。也叫“<header>”头部标签。以前我们在div css布局中常常把网页大致分为头部、内容、底部。对于大结构我们常常使用div里加class或id进行布局。而头部常常使用<div class=”header”></div>或<div id=”header”></div>进行布局,特点与传统div 布局不同,少了div做标签,而是新增元素标签。

    <body>
        <header class="header_area">
                  <!-- 网页的头部份HTML代码 -->
        </header>
    </body>

    2.container类

    bootstrap的 .container 类是非常有用的,它能在页面中创建一个居中的区域,然后我们能够把其他位置的内容放到里面。container类等价于创建了一个具有静态宽度并且magin值为auto的一个居中的div框。 bootstrap的 container类的优点在于它是响应式的,是bootstrap的外围容器,栅格化布局的基础。

    container有个15px的padding,而我们设定的每个col也都有15px的padding,如果两者直接配合,那么就会产生30px的间距,导致内容和浏览器边框的距离较大,所以用row将所有的col包裹,row会有一个-15px的margin,可以抵消掉一个container或col产生的15px的padding值。

    <header class="header">
        <div class="container">
            <div class="col-lg-2">***</div>
            <div class="col-lg-10">***</div>
        </div>
    </header>

    3.当页面往下拉时,将导航栏固定在浏览器的最上方

    定义一个sticky类,当页面往下滚动小于100px就移除header标签的.sticky,如果大于100就为header添加.sticky。

    /* css部分 */

    .sticky
    { position: fixed; top: 0; left: 0; width: 100%; background: #fff; z-index: 337; box-shadow: 2.5px 4.33px 15px 0px rgba(0, 0, 0, 0.15); }

    /* js实现sticky动态添加取消 */

    $(window).on('scroll',function() { var scroll = $(window).scrollTop(); if (scroll < 100) { $(".header_area").removeClass("sticky"); }else{ $(".header_area").addClass("sticky"); } });

     4.鼠标悬停显示二级菜单

    实现这个功能主要是两个东西:①:hover 选择器     当鼠标悬停在指定元素上时的样式;  ②visibility 属性     当属性值为visible时元素是可见的,当属性值为hidden时元素是不可见的;

    <nav class="main_menu">
        <ul>
            <li class="menu-item"><a href="#">网站首页</a></li>
            <li class="menu-item"><a href="#">新闻聚焦</a></li>
            <li class="menu-item"><a href="#">通知公告</a></li>
            <li class="menu-item"><a href="#">防控指南</a></li>
            <li class="menu-item"><a href="#">咨询平台</a>
                    <ul class="sub-menu">
                <li class="menu-item"><a href="#">专家解读</a></li>
                <li class="menu-item"><a href="#">我要提问</a></li>
                    </ul>
            </li>
            <li class="menu-item"><a href="#">辟谣专栏</a></li>
            <li class="menu-item"><a href="#" class="deneb_btn">我要提问</a></li>
        </ul>
    </nav>
    /* 当鼠标悬停到小li上时显示类名为sub-menu的二级菜单 */
    
    .header_area .site_menu .primary_menu .main_menu ul li:hover ul.sub-menu {
        -webkit-transform: scale(1);
        -moz-transform: scale(1);
        -ms-transform: scale(1);
        -o-transform: scale(1);
        transform: scale(1);
        visibility: visible;
        opacity: 1;    /* 不透明 */
        box-shadow: 2.5px 4.33px 15px 0px rgba(0, 0, 0, 0.15); 
    }
    
    .header_area .site_menu .primary_menu .main_menu ul li ul.sub-menu li:hover ul.sub-menu {
        visibility: visible;
        opacity: 1;   
    }
    
    /* 鼠标移动到二级菜单的小li上时更改字体颜色 */
    
    .header_area .site_menu .primary_menu .main_menu ul li ul.sub-menu li:hover a {
        color: #7d52cc; 
    }

     5.项目燃尽图

     

  • 相关阅读:
    Selenium(一):元素定位
    白盒测试系列(五)条件组合覆盖
    LDAP(轻型目录访问协议)
    Spring Intorduce、History and Design Philosophy
    CORS
    mysql创建用户并授权某个数据库
    Introduce Servlet 、Filter
    web.xml的简单解释以及Hello1中web.xml的简单分析
    ANNOTATION and analyse hello1.java
    Analysis of container and Injection in Java, their history and future.
  • 原文地址:https://www.cnblogs.com/ynj1014/p/13418170.html
Copyright © 2020-2023  润新知