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

我没用老师的那个padding方法 我自己给li设置了一个宽度 这样可行吗

*{
	list-style:none;    /*去掉li前边的小点*/
	padding:0 0 0 0;        /*浏览器默认有margin和padding的值 取消掉页面上的默认边距就没有了*/
	margin:0 0 0 0;
}

a{
	text-decoration:none; color:#000;            /*把a标签的默认样式改了*/
	display:block;                     /*变成块级元素 这样就会显示一个竖行的背景*/
	width:92px;                      /*没有用老师的padding方法 自己定了一个宽度*/
	
} 
a:hover{
	color:red;                       /*鼠标移上去变成红色*/
	background:#666;
}
.nav{
	height:40px;
	width:552px;
	background:#eee;
	margin:0 auto;         /*让div在页面水平居中*/
	text-align:center;                                      /*让文字在li中居中*/
}	

.nav>ul>li{
	float:left;
	height:40px;
	/*padding:0 30px;               不设置宽度 这样元素超过宽度也不会自动换行到下一行*/
	line-height:40px;
	/*position:relative;                  进行相对定位   取消了好像也没事*/      
	
}

.nav>ul{
	margin:0 0 0 0;
	padding:0;
}

.nav>ul>li>ul>li{
	background:#eee;
	display:none;                     /*设置2级菜单隐藏*/
}

.nav>ul>li>ul{
	/*position:absolute;                 进行绝对定位*/
}

.nav>ul>li>ul>li>a:hover{                  /*设置二级菜单的样式*/
	background:#06f;
}
.nav ul li:hover li{
	display:block;                         /*设置2级菜单鼠标移上去显示*/
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="style.css" /> 
<script type="text/javascript" src="script.js"></script>
</head>
<body>
	<div class="nav">
		<ul>
			<li><a href="#">首页</a>
			<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>
			<li><a href="#">首页</a></li>
		</ul>
	
	</div>
</body>
</html>

没用padding方法 直接给a了一个宽度 这样也没用绝对定位和相对定位 直接二级菜单就在一级菜单下面了 真正项目中一般是padding来设置宽度还是直接把宽度定死 但是把宽度定死不好就是 内容长度不能超过宽度 要不会自动换行到下一行。

正在回答

5 回答

一般宽度给他设置成跟父元素的百分比多少多少的,导航一般来讲是不允许内容超过宽度的,超过的话也是溢出隐藏或者省略。

没有设置定位没有任何关系,你要知道二级导航本身就是在上级li里面的,而你的上级li里面放了一个a标签,还给设置了display:block ;当然会把二级菜单挤出去。你没仔细看么?<首页>下面的二级导航都被挤到课程大厅下面了。而ul li都是块级元素,你有设置了top,所以他就按照竖列排在<首页>下一个导航的下面。想要弄好可以给二级导航margin-left:-二级导航的宽度;或者给上级li相对定位,给二级导航绝对定位。第二种稳妥点。

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

你好,我设置了float:left后,li里的导航就不居中显示了,而是向左显示了,怎么解决?

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

没仔细看,不好意思。你的一级导航里面的a标签直接把二级导航挤下来了,正好就是这样的排列,二级导航设置的top是无效的。

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

慕移动7208282 提问者

谢谢回答我的问题,我明白了,我把a删了后发现二级菜单果然挤上去了,但是我设置了相对定位和绝对定位后就好了,二级菜单还是在原来的位置。
2017-09-19 回复 有任何疑惑可以回复我~

还有一个疑问就是 我这里没设置绝对定位和相对定位 直接二级菜单就在一级菜单下了 这个是为什么

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

谢谢大牛的解答 小弟感激不尽

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

举报

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

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

进入课程

我没用老师的那个padding方法 我自己给li设置了一个宽度 这样可行吗

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