下面这个菜单的Item1和Item2原来是横着排放的,我把它修改为竖着排放后,出现了奇怪现象,只要我的鼠标出现在右边,但还没有放到菜单上面,就弹出子菜单,请问是什么原因,如何解决?-------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javaScriptDropDownMenu</title>
<style type="text/CSS">
* {
padding:0;
margin:0;
}
body {
font-family:verdana, sans-serif;
font-size:small;
}
#navigation, #navigation li ul {
list-style-type:none;
}
#navigation {
margin:20px;
}
#navigation li {
text-align:center;
position:relative;
}
#navigation li a:link, #navigation li a:visited {
display:block;
text-decoration:none;
color:#000;
width:120px;
height:40px;
line-height:40px;
border:1px solid #fff;
border-width:1px 1px 0 0;
background:#c5dbf2;
padding-left:10px;
}
#navigation li a:hover {
color:#fff;
background:#2687eb;
}
#navigation li ul li a:hover {
color:#fff;
background:#6b839c;
}
#navigation li ul {
display:none;
position:absolute;
top:40px;
left:0;
margin-top:1px;
width:120px;
}
#navigation li ul li ul {
display:none;
position:absolute;
top:0px;
left:130px;
margin-top:0;
margin-left:1px;
width:120px;
}
</style>
<script type="text/Javascript">
function displaySubMenu(li) {
var subMenu = li.getElementsByTagName("ul")[0];
subMenu.style.display = "block";
}
function hideSubMenu(li) {
var subMenu = li.getElementsByTagName("ul")[0];
subMenu.style.display = "none";
}
</script>
</head>
<body>
<ul id="navigation">
<li onmouSEOver="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">Item1</a>
<ul>
<li><a href="#">Item1->Menu1</a></li>
<li><a href="#">Item1->Menu2</a></li>
<li><a href="#">Item1->Menu3</a></li>
<li><a href="#">Item1->Menu4</a></li>
</ul>
</li>
<li id="tb0" onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">Item2</a>
<ul>
<li><a href="#">Item2->Menu1</a></li>
<li><a href="#">Item2->Menu2</a></li>
<li><a href="#">Item2->Menu3</a></li>
<li><a href="#">Item2->Menu4</a></li>
<li><a href="#">Item2->Menu5</a></li>
</ul>
</li>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javaScriptDropDownMenu</title>
<style type="text/CSS">
* {
padding:0;
margin:0;
}
body {
font-family:verdana, sans-serif;
font-size:small;
}
#navigation, #navigation li ul {
list-style-type:none;
}
#navigation {
margin:20px;
}
#navigation li {
text-align:center;
position:relative;
}
#navigation li a:link, #navigation li a:visited {
display:block;
text-decoration:none;
color:#000;
width:120px;
height:40px;
line-height:40px;
border:1px solid #fff;
border-width:1px 1px 0 0;
background:#c5dbf2;
padding-left:10px;
}
#navigation li a:hover {
color:#fff;
background:#2687eb;
}
#navigation li ul li a:hover {
color:#fff;
background:#6b839c;
}
#navigation li ul {
display:none;
position:absolute;
top:40px;
left:0;
margin-top:1px;
width:120px;
}
#navigation li ul li ul {
display:none;
position:absolute;
top:0px;
left:130px;
margin-top:0;
margin-left:1px;
width:120px;
}
</style>
<script type="text/Javascript">
function displaySubMenu(li) {
var subMenu = li.getElementsByTagName("ul")[0];
subMenu.style.display = "block";
}
function hideSubMenu(li) {
var subMenu = li.getElementsByTagName("ul")[0];
subMenu.style.display = "none";
}
</script>
</head>
<body>
<ul id="navigation">
<li onmouSEOver="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">Item1</a>
<ul>
<li><a href="#">Item1->Menu1</a></li>
<li><a href="#">Item1->Menu2</a></li>
<li><a href="#">Item1->Menu3</a></li>
<li><a href="#">Item1->Menu4</a></li>
</ul>
</li>
<li id="tb0" onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">Item2</a>
<ul>
<li><a href="#">Item2->Menu1</a></li>
<li><a href="#">Item2->Menu2</a></li>
<li><a href="#">Item2->Menu3</a></li>
<li><a href="#">Item2->Menu4</a></li>
<li><a href="#">Item2->Menu5</a></li>
</ul>
</li>
解决方案 »
- js 兼容问题
- 这个是什么编码,怎么还原成中文
- checkbox属性问题
- 跪求 嵌套的正则表达式
- ckeditor编辑器遇到怪问题,请高手帮忙
- 滚动条可以加宽吗
- 动态树状菜单问题!
- <IMG style=display:none onload="javascript:alert('dfasdfd')"> 为什么不执行啊?
- javascript如何实现excel中的数据透视表或分类汇总的功能
- setinterval只执行一次动画,这个是轮播动画,为什么我调用setinterval只滑动一次,而我调用2次setinterval就能正常自动轮换
- 意外地调用了方法或属性访问
- 怎么让for循环里面执行一次就等待一段时间
------>
<li onmouSEOver="displaySubMenu(this)" onmouseout="hideSubMenu(this)" style="border:1px solid red;">另一个li也加上这个style.让边框显示出来,你再调试一下看是什么问题
------------
不行啊
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javaScriptDropDownMenu</title>
<style type="text/CSS">
* { padding:0; margin:0; }
body { font-family:verdana, sans-serif; font-size:small; }
#navigation, #navigation li ul { list-style-type:none; }
#navigation { margin:20px; }
#navigation li { text-align:center; position:relative; }
#navigation li a:link, #navigation li a:visited {
display:block; text-decoration:none; color:#000;
width:120px; height:40px; line-height:40px;
border:1px solid #fff;
border-width:1px 1px 0 0;
background:#c5dbf2;
padding-left:10px;
}
#navigation li a:hover { color:#fff; background:#2687eb; }
#navigation li ul li a:hover { color:#fff; background:#6b839c; }
#navigation li ul {
display:none;
position:absolute;
/*
top:40px;
left:0;
margin-top:1px;
你既然已经把菜单竖起来了,原来的这些横着的
样式设置就不知道改改吗? 所以,上面我才让你看书去...
*/
/* 下面是竖着的样式 */
top:0px;
left:130px;
margin-left:1px;
/*而且我还告诉你,烦事还多着呢,最头痛的是各浏览器的兼容,
还要对CSS进行改造,hack。不懂CSS怎么搞?呵呵
*/
width:120px;
}
#navigation li ul li ul {
display:none;
position:absolute;
top:0px;
left:130px;
margin-top:0;
margin-left:1px;
width:120px;
}
</style>
<script type="text/Javascript">
function displaySubMenu(li) {
var subMenu = li.getElementsByTagName("ul")[0];
subMenu.style.display = "block";
}
function hideSubMenu(li) {
var subMenu = li.getElementsByTagName("ul")[0];
subMenu.style.display = "none";
}
</script>
</head>
<body>
<ul id="navigation">
<li onmouSEOver="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">Item1</a>
<ul>
<li><a href="#">Item1->Menu1</a></li>
<li><a href="#">Item1->Menu2</a></li>
<li><a href="#">Item1->Menu3</a></li>
<li><a href="#">Item1->Menu4</a></li>
</ul>
</li>
<li id="tb0" onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
<a href="#">Item2</a>
<ul>
<li><a href="#">Item2->Menu1</a></li>
<li><a href="#">Item2->Menu2</a></li>
<li><a href="#">Item2->Menu3</a></li>
<li><a href="#">Item2->Menu4</a></li>
<li><a href="#">Item2->Menu5</a></li>
</ul>
</li>
</ul>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javaScriptDropDownMenu</title>
<style type="text/CSS">
* { padding:0; margin:0; }
body { font-family:verdana, sans-serif; font-size:small; }
#navigation, #navigation li ul { list-style-type:none; }
#navigation { margin:20px; }
#navigation li { text-align:center; position:relative;}
#navigation li a:link, #navigation li a:visited {
display:block; text-decoration:none; color:#000;
width:120px; height:40px; line-height:40px;
border:1px solid #fff;
border-width:1px 1px 0 0;
background:#c5dbf2;
padding-left:10px;
}
#navigation li a:hover { color:#fff; background:#2687eb; }
#navigation li ul li a:hover { color:#fff; background:#6b839c; }
#navigation li ul {
display:none;
position:absolute;
/*
top:40px;
left:0;
margin-top:1px;
你既然已经把菜单竖起来了,原来的这些横着的
样式设置就不知道改改吗?
所以,上面我才让你看书去...
*/
/* 下面是竖着的样式 */
top:0px;
left:130px;
margin-left:1px;
/*而且我还告诉你,烦事还多着呢,最头痛的是各浏览器的兼容,
还要对CSS进行改造,hack。不懂CSS怎么搞?呵呵
*/
width:120px;
}
#navigation li ul li ul {
display:none;
position:absolute;
top:0px;
left:130px;
margin-top:0;
margin-left:1px;
width:120px;
}
</style>
<script type="text/Javascript">
function displaySubMenu(li) {
var subMenu = li.getElementsByTagName("ul")[0];
subMenu.style.display = "block";
}
function hideSubMenu(li) {
var subMenu = li.getElementsByTagName("ul")[0];
subMenu.style.display = "none";
}
</script>
</head>
<body>
<ul id="navigation">
<li onmouSEOver="displaySubMenu(this)" onmouseout="hideSubMenu(this)" style=" border:1px solid red;/*调试时使用border.调试好后删除*/ ">
<a href="#">Item1</a>
<ul>
<li><a href="#">Item1->Menu1</a></li>
<li><a href="#">Item1->Menu2</a></li>
<li><a href="#">Item1->Menu3</a></li>
<li><a href="#">Item1->Menu4</a></li>
</ul>
</li>
<li id="tb0" onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)" style=" border:1px solid red;/*调试时使用border.调试好后删除*/ ">
<a href="#">Item2</a>
<ul>
<li><a href="#">Item2->Menu1</a></li>
<li><a href="#">Item2->Menu2</a></li>
<li><a href="#">Item2->Menu3</a></li>
<li><a href="#">Item2->Menu4</a></li>
<li><a href="#">Item2->Menu5</a></li>
</ul>
</li>
</ul>
加了 style=" border:1px solid red;以后看到【只要我的鼠标出现在右边,
但还没有放到菜单上面,就弹出子菜单】是什么原因了吧?
另外,我上面的样式也只是个大概,只想告诉你个思路,如何解决问题。最终还是
你自己解决比较好。磨刀不误砍柴工
</body>
</html>
text-align:center;
position:relative;
width:120px;
}
li的宽度是100%,a的宽度是120px,你给li绑定的事件哦~。多用firebug