我有一个非常简单的布局,使用<ul><li>
只有两个无序列表,每个列表都在<div>
内。
<div id="main">
<div id="fist-list">
<ul id="colors">
<li id="white">White</li>
<li id="green">Green</li>
</ul>
</div>
<div id="second-list">
<ul id="numbers">
<li id="one">One</li>
<li id="two">Two</li>
</ul>
</div>
</div>
li{
float: left;
width: 30px;
}
#second-list{
padding-left:30px;
}
you can check my simple code here。
我尝试使用CSS padding-left
单独两个列表相距30px,但我的CSS不起作用,为什么?
答案 0 :(得分:1)
这里有几个问题:
你正在使用Float,它会破坏布局
Div是块级元素,因此总是会破坏该行。
只需删除浮点数,并使div成为内联块,如下所示:
祝你好运!答案 1 :(得分:1)
如果你仍然希望浮动在li
你可以向左浮动列表,然后它就可以了。
像这样:#second-list{
padding-left:30px;
float:left
}
我仍然会采取另一种方式,但我需要看看你想要实现的目标。你有照片吗?
答案 2 :(得分:0)
将overflow:hidden
写在div
至clear
,因为child's float
div{overflow:hidden}
#second-list, #fist-list{float:left}
检查此http://jsfiddle.net/sandeep/a8dy6/18/
编辑:根据你的评论
li{clear:left;}
检查此http://jsfiddle.net/sandeep/a8dy6/19/
修改强>
原因:实际上#second-list
采用了padding
如果您定义一个float
元素,那么您必须clear
parent
否则parent
崩溃。
如果没有clear the parent
http://jsfiddle.net/sandeep/a8dy6/22/
因此;当parent
有child
时,您必须clear float
。
在clear parent
http://jsfiddle.net/sandeep/a8dy6/23/