多数网站中,下拉菜单效果基本常见。在实现技术方面,实现该效果的方法也很多,今天就来说说纯CSS样式来实现常见的下拉菜单,有兴趣的小伙伴可以参考下:
实现效果如下:
鼠标未移上前
鼠标未移上前
鼠标移上后
鼠标移上后
从效果图可以看出,当鼠标移上去的时候,会弹出下拉的菜单层!要是在JQuery中,实现原理也蛮简单,就是当鼠标触发移上去事件,弹层就显示(默认隐藏)的原理!而在CSS实现该效果会用到的原理就是CSS3的动画透明度过渡显示。因为效果图中也有几个三角形图标,所以统一用CSS和CSS3的知识来实现比较容易。下面首先看看html的结构:如下:
布局的CSS:
右边实心的三角形可以用伪类元素 :after来实现.
鼠标移上去,各种变化的样式,其中当鼠标移上去时候,弹出层的透明度变为1,就可以看到内容
当弹层出现后,第一行会有一个三角形指向,实现该三角形可以用到伪类:first-child:before,如下
结合起来就能完成纯CSS做下拉菜单效果!想学更多知识,欢迎关注“恒星网络”头条号!
部导航条布局
html代码:
<!DOCTYPE html><html><head>
<meta charset="utf-8">
<title>头部导航条制作</title>
<link rel="stylesheet" type="text/css" href="css/master8.css">
</head>
<body>
<div class="navbox">
<ul class="clearfix">
<li><a href="#">首页</a></li>
<li><a href="#">资讯</a></li>
<li><a href="#">web前端</a></li>
<li><a href="#">前端新闻</a></li>
<li><a href="#">联系我们</a></li>
<li><a href="#">关于我们</a></li>
</ul>
</div>
</body>
</html>
用无序列表制作头部导航条:
无序列表是上下布局排列的,那我们需要思考的是让他左右布局的方式排列
左右排列的方式我们所用的是float:left;
浮动的方法让li
左右布局
CSS样式:
.navbox{
width:960px;
height:40px;
margin:20pxauto;
background:#08c;
}
.navbox >ul>li{
float: left;
width:160px;
height:40px;
line-height:40px;
text-align: center;
font-size:16px;
}
鼠标移入时实现颜色的变换
HTML代码:
<div class="navbox">
<ul class="clearfix">
<li><a href="#">首页</a></li>
<li><a href="#">资讯</a></li>
<li><a href="#">web前端</a></li>
<li><a href="#">前端新闻</a></li>
<li><a href="#">联系我们</a></li>
<li><a href="#">关于我们</a></li>
</ul></div>
思路:
鼠标移入时每个<li>
显示为另一种颜色background: #00bfff;
css代码:
.navbox ul li a{ display: block; color: #fff; background: #08c;}.navbox ul li a:hover{ text-decoration: none; background: #00bfff;}
下拉菜单实现
html:
<div class="navbox">
<ul class="clearfix">
<li><a href="#">首页</a></li>
<li><a href="#">资讯</a></li>
<li><a href="#">web前端</a>
<ul class="subnav">
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
</ul>
</li>
<li><a href="#">前端新闻</a></li>
<li><a href="#">联系我们</a></li>
<li><a href="#">关于我们</a></li>
</ul>
</div>
思路:
在一级菜单web前端
下实现二级菜单<ul class="subnav">
html
css
JavaScript
当鼠标移入菜单时web前端时
显示二级菜单,移出时隐藏;
CSS代码实现:
.subnav{ display: none;}/*鼠标没有移入“web前端”选项栏时二级菜单隐藏*/.navbox ul li:hover .subnav{ display: block;}/*当鼠标移入“web前端”选项栏时显示二级菜单*/
三级菜单实现
HTML
<div class="navbox">
<ul class="clearfix">
<li><a href="#">首页</a></li>
<li><a href="#">资讯</a></li>
<li><a href="#">web前端</a>
<ul class="subnav">
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a>
<ul class="threenav">
<li><a href="#">css1</a></li>
<li><a href="#">css2</a></li>
<li><a href="#">css3</a></li>
</ul>
</li>
<li><a href="#">JavaScript</a></li>
</ul>
</li>
<li><a href="#">前端新闻</a></li>
<li><a href="#">联系我们</a></li>
<li><a href="#">关于我们</a></li>
</ul>
</div>
思路:
前面与二级菜单思路相似唯一不同的是三级菜单显示的位置。
我们看看css的绝对定位与相对定位这篇文章
CSS代码:
.subnav>li{ position: relative;}.threenav{ position: absolute; top: 0; left: 160px; width: 160px;}.subnav, .threenav{ display: none;}.subnav li:hover .threenav{ display: block;}
最后实现的效果如下图:
图1
图2
图3
*请认真填写需求信息,我们会在24小时内与您取得联系。