纯html+css实现点击弹出式导航栏菜单(采用:target和display:none)
     
    
   
    
     
      搜索了很久,发现都没有纯html+css的点击式导航栏,要么是采用:hover的划过式导航栏,要么使用Javascript实现的点击式导航栏,遂着手研究了一下。这个导航栏是点击出二级导航,鼠标移走不缩回,直到点击别的一级导航栏,而且无法创建三级或以后级导航栏,而且点击别处也不缩回。暂且到此为止,有空再进一步强化下。
     
    
   
    一、首先是使用到的技术:
   
1、display:none和display:block;
2、:target;
    二、原理:
   
1、先用display:none隐藏二级导航栏;
2、一级导航栏<a>内锚定二级导航栏id;
3、:target选择器改变二级导航栏display属性为block使二级导航栏显示出来;
    三、过程:
   
    1、先放上全部style和body
   
    <style>
    nav {
        margin:100px auto;
        text-align:center;
        margin-bottom: 0;
    }
    nav ul {
        list-style-type: none;
        padding:0 20px;
        display:inline-table;
        position:relative;  
        background: #999;
    }
    nav ul ul {
        display:none;
    }
    nav ul li {
        float:left; 
    }
    nav ul::after {
        content:"";
        display:block;
        clear:both;
    }
    nav ul li a {
        display:block;
        padding:25px 40px;
        color:#000;
        text-decoration:none;
        font-family:"微软雅黑";
    }
    nav ul li:hover {
        background:linear-gradient(to bottom,#4f5964,#5f6975);
    }
    nav ul li:hover a {
        color:#FFF;
    }
    #target_1:target, #target_2:target, #target_3:target, #target_4:target {
      display: block;     
  }
  nav ul ul {
    background:#5f6975;
    border-radius:0;
    position:absolute;
    top:100%;
    padding:0;
}
nav ul ul li {
    float:none;
    border-top:1px solid #6b727c;
    border-bottom:1px solid #575f6a;
}   
nav ul ul li a:hover {
    background:#4b545f;
}
</style>
<body>
    <nav>
        <ul>
          <li><a href="#target_1">导航一</a>
            <ul id="target_1">
                <li><a href="#">二级导航</a></li>
                <li><a href="#">二级导航</a></li>
                <li><a href="#">二级导航</a></li>
                <li><a href="#">二级导航</a></li>
            </ul>
        </li>
        <li><a href="#target_2">导航二</a>
            <ul id="target_2">
                <li><a href="#">二级导航</a></li>
                <li><a href="#">二级导航</a></li>
                <li><a href="#">二级导航</a></li>
            </ul>
        </li>
        <li><a href="#target_3">导航三</a>
            <ul id="target_3">
                <li><a href="#">二级导航</a></li>
                <li><a href="#">二级导航</a></li>
            </ul>
        </li>
        <li><a href="#target_4">导航四</a>
            <ul id="target_4">
                <li><a href="#">二级导航</a></li>
            </ul> 
        </li>
    </ul>
</nav>  
</body>
    2、display隐藏部分
   
    nav ul ul {
        display:none;
    }
    3、<a>锚定部分
   
          <li><a href="#target_1">导航一</a>
            <ul id="target_1">
    4、:target事件改变属性部分
   
    #target_1:target, #target_2:target, #target_3:target, #target_4:target {
      display: block;     
  }
    
     本文为作者在互联网上多方寻找资料后尝试完成的作品,如有侵权请联系作者本人(微信:13148875484)删除,支持转载,支持不署名转载。
    
   
 
版权声明:本文为lurenxie原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
