浮动div中的li为什么向下偏移,内外边距都是0,谷歌、火狐、IE显示都一样
这里的li标签为什么向下偏移了一点,内外边距都是0,谷歌、火狐、IE显示都一样,实在不知道为什么
html:
<div class="nav"><div class="nav_menu">
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">关于慕课</a></li>
<li><a href="#">新闻动态</a></li>
<li><a href="#">课程中心</a></li>
<li><a href="#">在线课程</a></li>
<li><a href="#">人才招聘</a></li>
</ul>
</div>
<div class="nav_search">
<input/>
</div>
</div><!--nav结束-->
css:
*{margin:0;
padding: 0;
font-size:12px;
}
body{
background-color: #F5F5F5;
}
.wrap{
width:1000px;
margin:0 auto;
background-color: white;
}
.nav{
background:url('../images/nav_bg.jpg') repeat-x;
width: 100%;
height: 40px;
border-radius: 5px;
}
.nav_menu{
float: left;
width: 610px;
height: 40px;
}
.nav_menu li{
float: left;
list-style: none;
width: 100px;
text-align: center;
height: 40px;
line-height: 40px;
}
.nav_menu a:link,.nav_menu a:visited,.nav_menu a:active{
text-decoration: none;
color: white;
font-size:16px;
}
.nav_menu a:visited,.nav_menu a:active{
color: #FF0;
}
回答
我找到问题的原因了,是我其它代码的影响,我的错...
原因
是这么回事:在我这个导航div的前面呢,还有一个浮动的div,因为这个div多出了3px,所以导致了我的.nav_menu在浮动的时候被“挤下去”了
如图:
html:
<div class="logo_left"><!--div的高度是83px--> <img src="https://q.cnblogs.com/q/128986/images/logo.jpg"/><!--图片的高度是80px-->
</div>
css:
.logo_left{ float: left;
}
解决
- 那么,为什么div的高度会比img的高度多3px呢?
这是因为,行内元素后面会跟一个空白符,会使它的高度多出3px。
- 怎么解决?
我在查阅验证之后总结了4种方案:
- 设置div{ font-size: 0};将外层块级标签的font-size设置为0;
- 设置div{ height:**px;};将外层块级标签的高度设置为img的高度
- 设置img{ display: block};将内层行内标签的display设置为block,将其变为块级标签;
- 设置img{ vertical-align:top;};将内层行内标签的vertical-align设置为top;
最后还是要感谢大家帮我找原因,特别是@RosonJ ,因为他积极的回复我我才没有这么轻易的放弃,嘿嘿,比心
以上是 浮动div中的li为什么向下偏移,内外边距都是0,谷歌、火狐、IE显示都一样 的全部内容, 来源链接: utcz.com/a/41474.html