【css样式】用javascript写个简单下拉菜单,css出现个小问题。 本帖最后由 xx954076071 于 2010-12-21 09:48:15 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 记住ul默认是有padding的所以你要ul {padding:0}才可以哦~下面的代码试试<html><head><title>javascript</title><style type="text/css"> * { margin:0px; border:#234353 0px solid;} #menu { margin:30px 0px 0px 300px; width:300px; height:25px;} #menu ul { margin:0px; width:300px; height:25px; padding:0;} #menu ul li,menu ul li ul li { cursor:pointer; border-width:1px; text-align:center; list-style-type:none; float:left; width:80px; height:25px; line-height:25px; margin-right:8px;} a { text-decoration:none;} #menu ul li a:hover,menu ul li ul li { color:#4345ef; } #menu ul li ul { display:none; position:absolute; margin:22px 0px 0px 0; //问题在这,开始我写的是22 0 0 0 ,可下拉菜单错位了。改成22 0 0 -80才行。这是为什么啊?! width:80px; height:50px;}</style></head><body><script type="text/javascript"> function showSub(li){ var sub=li.getElementsByTagName("ul")[0]; sub.style.display="block";} function display(li){ var sub=li.getElementsByTagName("ul")[0]; sub.style.display="none";}</script><div id="menu"><ul><li onmouseover="showSub(this);" onmouseout="display(this);"><a href="#">军事</a><div style="clear:both"></div> <ul> <li><a href="#">陆军</li> <li><a href="#">海军</li> </ul></li><li onmouseover="showSub(this);" onmouseout="display(this);"><a href="#">体育</a> <ul> <li><a href="#">NBA</li> <li><a href="#">CBA</li> <li><a href="#">FIFA</li> </ul></li><li onmouseover="showSub(this);" onmouseout="display(this);"><a href="#">经济</a> <ul> <li><a href="#">股市</li> <li><a href="#">楼市</li> <li><a href="#">体彩</li> </ul></li></ul></div></body></html> #menu ul li ul { display:none; position: absolute; margin: 22px 0 0 0; width:80px; height:50px; padding: 0; } 什么叫只纠正了一半 什么浏览器?把我的代码复制过去 然后run一下看看 看看这个代码为什么失效不能搜索了。 js 修剪处理头像问题/asp 看Javascript宝典第五版过时不? javascript動態添加表格的行與動態刪除表格的行的問題 ?(比如900000变成900,000) 如何让超链接不变色?(最后10分了,求助) 如何实现关闭窗口的 javaScript控制? 关于百度地图 的问题 托拽一物体,如何让下面的元素也响应事件 window.onbeforeunload=sessiondelete; 拜求~!js如何循环获取文本框的值 求和 getElementsByTagName时,对页面上所有的select怎么操作
所以你要ul {padding:0}才可以哦~下面的代码试试
<html>
<head>
<title>
javascript
</title>
<style type="text/css"> * {
margin:0px;
border:#234353 0px solid;
}
#menu {
margin:30px 0px 0px 300px;
width:300px;
height:25px;
}
#menu ul {
margin:0px;
width:300px;
height:25px;
padding:0;
}
#menu ul li,menu ul li ul li {
cursor:pointer;
border-width:1px;
text-align:center;
list-style-type:none;
float:left;
width:80px;
height:25px;
line-height:25px;
margin-right:8px;
}
a {
text-decoration:none;
}
#menu ul li a:hover,menu ul li ul li {
color:#4345ef;
}
#menu ul li ul {
display:none;
position:absolute;
margin:22px 0px 0px 0; //问题在这,开始我写的是22 0 0 0 ,可下拉菜单错位了。改成22 0 0 -80才行。这是为什么啊?!
width:80px;
height:50px;
}
</style>
</head>
<body><script type="text/javascript">
function showSub(li){
var sub=li.getElementsByTagName("ul")[0];
sub.style.display="block";
}
function display(li){
var sub=li.getElementsByTagName("ul")[0];
sub.style.display="none";
}
</script>
<div id="menu">
<ul>
<li onmouseover="showSub(this);" onmouseout="display(this);"><a href="#">军事</a><div style="clear:both"></div>
<ul>
<li><a href="#">陆军</li>
<li><a href="#">海军</li>
</ul>
</li>
<li onmouseover="showSub(this);" onmouseout="display(this);"><a href="#">体育</a>
<ul>
<li><a href="#">NBA</li>
<li><a href="#">CBA</li>
<li><a href="#">FIFA</li>
</ul>
</li>
<li onmouseover="showSub(this);" onmouseout="display(this);"><a href="#">经济</a>
<ul>
<li><a href="#">股市</li>
<li><a href="#">楼市</li>
<li><a href="#">体彩</li>
</ul>
</li>
</ul>
</div>
</body>
</html>
#menu ul li ul
{
display:none;
position: absolute;
margin: 22px 0 0 0;
width:80px;
height:50px;
padding: 0;
}
把我的代码复制过去 然后run一下看看