为了账号安全,请及时绑定邮箱和手机立即绑定

不明白这是为什么?

将一级菜单的ul li{position:relative;} 相对定位去掉,然后把ul li ul{ position:absolute;}里面的 left:0px 和 top:40px; 去掉之后,感觉显示的结果是一样的啊,不明白为什么?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
*{ margin:0px; padding:0;}
#nav{ background-color:#eee; width:600px; height:40px; margin: 0 auto;}
ul{ list-style:none;}
ul li{float:left; line-height:40px; text-align:center;}
a{ text-decoration:none; color:#000; padding:0 10px; height:40px; display:block;}
a:hover{ color:#FFF; background-color:#666;}
ul li ul li{ float:none; background-color:#eee; margin-top:2px;}
ul li ul{ position:absolute; display:none;}
ul li ul li a{ width:80px;}
ul li ul li a:hover{ background-color:#06F;}
ul li:hover ul{ display:block;}
</style>
</head>

<body>
<div id="nav">
    <ul>
    	<li><a href="#">首页</a></li>
        <li><a href="#">课程大厅</a>
        	<ul>
            	<li><a href="#">javascript</a></li>
                <li><a href="#">jquery</a></li>
            </ul>
        </li>
        <li><a href="#">学习中心</a>
            <ul>
            	<li><a href="#">javascript</a></li>
                <li><a href="#">jquery</a></li>
            </ul>
        </li>
        <li><a href="#">经典案例</a></li>
        <li><a href="#">关于我们</a></li>
    </ul>
</div>
</body>
</html>


正在回答

2 回答

你可以做个实验在<li><a href="#">javascript</a></li>多加一些文字 观察一下效果

1 回复 有任何疑惑可以回复我~

这里使用"position: absolute;"的目的是将二级菜单从文档流中排除,避免撑开一级li标签. 如果不设置元素的left和top属性,ul还会在原来的位置(a标签的下方), 但是不同浏览器可能会产生偏差. 并且随着html的复杂化可能会导致bug. 所以才设置其它的属性.

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
形形色色的下拉菜单
  • 参与学习       106972    人
  • 解答问题       543    个

本教程从易到难,循循渐进,运用不同技术实现动态下拉菜单

进入课程

不明白这是为什么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信