<style type="text/css">
.nav {
list-style-type: none;
margin: 0;
padding: 0;
background-color: aquamarine;
}
ul.nav a {
float: left;
display: block;
height: 2em;
line-height: 2em;
}
</style>
</head>
<body>
<ul class="nav">
<li><a href="">home</a></li>
<li><a href="">likn</a></li>
<li><a href="">joe</a></li>
</ul>
得到的效果是这样的
奇怪为什么会这样?
应该是这样的吧
li元素是块级元素并且上下摞起来排列的,那么就算a标签浮动起来也是在li元素里的左边啊,怎么会水平排列了?
仔细看了楼下所有小伙伴的答案,结合自己的理解总结一下,浮动不仅看设置了浮动属性的元素本身,还要看它的父元素,如果父元素没有足以支撑浮动元素的宽高设置,那么浮动元素就会带着父元素一起浮动
如果
li {
border: 1px solid red;
height: 20px; /*给li设置高度*/
}
或者
<li><a href="">home</a>kkkkk</li> /*给li填充内容*/
<li><a href="">concat</a>kkkk</li>
<li><a href="">back</a>kkkk</li>
感谢楼下各位,谢谢你们的无私分享
原因是设置了
<a>
标签浮动以后,父元素<li>
没有被撑开,解决代码:方案一:
设置
<a>
为行内块元素方案二:
对
<li>
的after清除浮动