notepad++
浏览器
打开Notepad++,先输入个页面框架<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<hade>
</hade>
<body>
</body>
框架好了,那么就该定义页面的title,关键词keyword,和描述description<meta charset="UTF-8" content="text/html" http-equiv="content-type">
<title>纯css二级导航下拉菜单</title>
<meta name="keyword" content="搜狗略懂">
<meta name="description" content="描述">
这些内容只能在<head></head>中完成。
定义页面使用的css样式,也是需要在<head>里定义的。<style type="text/css">
* {
margin:0
padding:0
}
.jiao ul li a:hover{
color:#red
}
ul, li {
list-style:none
}
a {
text-decoration:none
}
.jiao {
border:5px solid #pink
border-right:none
overflow:hidden
float:left
margin:200px 0 0 600px
}
.jiao ul li ul li a {
border-right:solid
border-top:2px dotted #666
background:#black
}
.jiao>ul>li { float:left}
.jiao ul li a { width:150pxheight:80pxtext-align:centerline-height:100pxdisplay:blockborder-right:5px solid #redbackground:#redcolor:#red}
.jiao ul li ul { position:absolutedisplay:none}
.jiao ul li:hover ul{ display:block}
.jiao>ul>li>ul>li { float:none}
<!--nav>ul只选择nav下一级里面的ul元素
nav ul选择nav内所包含的所有ul元素
nav>ul比nav ul限定更严格,必须后面的元素只比前面的低一个级别。
这里根据你的需求来自己定义。
-->
</style>
添加一个DIV标签,在页面中划分出一个块来,用来显示。div中所用的样式为刚才咱们声明的样式“jiao”这个盒子来描述
然后使用无序标签<ul>+样式<li>来实现模块。<div class="jiao">
<ul>
<li><a href="#">搜狗略懂</a>
<ul>
<li><a href="#">搜狗问问</a></li>
<li><a href="#">搜狗输入法</a></li>
<li><a href="#">搜狗浏览器</a></li>
<li><a href="#">搜狐</a></li>
</ul>
</div>
放上全部的代码吧,可以参考一下啊,<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml">//允许你通过一个网址来识别你的标记
<head>
<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />
<meta name="keyword" content="利用css实现下拉菜单">
<meta name="description" content="搜狗略懂、css分享">
<title>css实现下拉导航栏菜单</title>
<style type="text/css">
* {
margin:0
padding:0
}
.jiao ul li a:hover{
color:#red
}
ul, li {
list-style:none
}
a {
text-decoration:none
}
.jiao {
border:5px solid #pink
border-right:none
overflow:hidden
float:left
margin:200px 0 0 600px
}
.jiao ul li ul li a {
border-right:solid
border-top:2px dotted #666
background:#black
}
.jiao>ul>li { float:left}
.jiao ul li a { width:150pxheight:80pxtext-align:centerline-height:100pxdisplay:blockborder-right:5px solid #redbackground:#redcolor:#red}
.jiao ul li ul { position:absolutedisplay:none}
.jiao ul li:hover ul{ display:block}
.jiao>ul>li>ul>li { float:none}
<!--nav>ul只选择nav下一级里面的ul元素
nav ul选择nav内所包含的所有ul元素
nav>ul比nav ul限定更严格,必须后面的元素只比前面的低一个级别。
这里根据你的需求来自己定义。
-->
</style>
</head>
<body>
<div class="jiao">
<ul>
<li><a href="#">搜狗略懂</a>
<ul>
<li><a href="#">搜狗问问</a></li>
<li><a href="#">搜狗输入法</a></li>
<li><a href="#">搜狗浏览器</a></li>
<li><a href="#">搜狐</a></li>
</ul>
</li>
</ul>
</div>
</body>
</html>
如果要添加更多的菜单,只需要后边继续添加<ul>/<li>即可
特别提示写代码过程中一定要记得换行,开头留空,否则过后找东西,连你自己都不知道写的是什么。何谈从哪里找起?
<style>* {margin:0px padding:0px}
li {list-style:none width:100px height:30px font-size:14px text-align:left line-height:30px border:1px solid #000 position:relative}
.box>li {float:left position:relative}
.son {position:absolute top:30px left:-1px}
.grason {position:absolute top:-1px left:100px}
.son,.grason {display:none}
.active {display:block background:#FF0}
</style>
<script>
window.onload=function(){
var aLi = document.getElementsByTagName('li')
for(var i=0i<aLi.lengthi++)
{
aLi[i].onmouseover = function(){
this.className = 'active'
var oSon = this.getElementsByTagName('ul')[0]
if(oSon)
{
oSon.style.display='block'
}
}
aLi[i].onmouseout = function(){
this.className = ''
var oSon = this.getElementsByTagName('ul')[0]
if(oSon)
{
oSon.style.display='none'
}
}
}
}
</script>
</head>
<body>
<ul class="box">
<li>首页</li>
<li>公司简介
<ul class="son">
<li>大事件</li>
<li>领导致辞
<ul class="grason">
<li>2013年
<ul class="grason">
<li>10月份</li>
<li>9月份</li>
<li>8月份</li>
</ul>
</li>
<li>2014年
<ul class="grason">
<li>10月份</li>
<li>9月份</li>
<li>8月份</li>
</ul>
</li>
</ul>
</li>
<li>企业文化</li>
</ul>
</li>
<li>联系我们</li>
<li>产品显示</li>
</ul>
</body>
代码粘贴的太复杂;
先给你分析一下原理:二级菜单没有在没有hover属性的情况下是隐藏的所以需要display:none,当鼠标hover的时候二级菜单才会列出来,这是纯css可以实现的;
知道上面的原理之后,下面比较容易实现具体看例子:
HTML代码:
<ul><li><a href="">一级菜单</a></li>
<li><a href="">一级菜单</a>
<ul class="drop-ul">
<li ><a href="">二级菜单</a></li>
</ul>
</li>
</ul>
CSS代码:
ul li ul.drop-ul{ display: noneposition:relative }/*正常情况下隐藏*/ul li:hover ul.drop-ul li{display: block} /*当鼠标放上去二级菜单li 显示出来*/
/*这个时候你会发现二级菜单显示的位置可能不对可以使用position属性*/
ul li:hover ul.drop-ul li{position:absolute}
/*通过top right left 调整位置,根据实际情况调整背景颜色,字体颜色等,细节东西*/
此时可能会发现会二级菜单出现有那么一点点的生硬;没关系配合jquery实现缓慢展现效果
$(document).ready(function() {if($(window).width() > 768) {
$('ul li').hover(
function() {
$('ul', this).stop().slideDown(200)
},
function() {
$('ul', this).stop().slideUp(200)
}
)
}
})
注意不知道jquery的新手使用记住先加载Jquery.min.js文件,放在此段js前面;