我們經常使用div建立多個box,再將box float:left來進行排列,但如果box中的資料長短不一,會令各個box的高度不相同而導致各行的排列不整齊,這個問題相信很多人都遇過。讓我們來看看解決的辦法。
假設我有一個ul:
<ul>
<li>字數很短..</li>
<li>這個卻字數很長,所以這個高度就變高了</li>
<li>字數很短..</li>
<li>字數很短..</li>
<li>字數很短..</li>
<li>字數很短..</li>
<li>字數很短..</li>
<li>字數很短..</li>
</ul>
<li>字數很短..</li>
<li>這個卻字數很長,所以這個高度就變高了</li>
<li>字數很短..</li>
<li>字數很短..</li>
<li>字數很短..</li>
<li>字數很短..</li>
<li>字數很短..</li>
<li>字數很短..</li>
</ul>
然後我們將各個li都變成一個box:
<style>
li{
width:200px;
min-height:200px;
float:left;
}
</style>
li{
width:200px;
min-height:200px;
float:left;
}
</style>
字數特別長的box,他的高度也會變得比其他的box高..所以就會導致排列不整齊的問題了,這時我們就可以使用inline-block來解決問題:
<style>
li{
width:200px;
min-height:200px;
display:inline-block;
margin:5px;
}
</style>
li{
width:200px;
min-height:200px;
display:inline-block;
margin:5px;
}
</style>
設定完成後,如果你使用firefox3或safari3瀏覽,會發現情況已經有改善了,只是上下沒有對齊,這時我們只需要加上vertical-align來對齊就可以了:
<style>
li{
width:200px;
min-height:200px;
display:inline-block;
vertical-align:top;
margin:5px;
</style>
li{
width:200px;
min-height:200px;
display:inline-block;
vertical-align:top;
margin:5px;
</style>
好,完成了,但是firefox2跟ie好像還是有點問題,我們來為每個browser做針對性的設定吧:
<style>
li{
width:200px;
min-height:200px;
display:-moz-inline-stack; /*這個是給firefox2看的 inline-stack*/
display:inline-block;
vertical-align:top;
margin:5px;
zoom:1; /*給ie看的,讓ie知道他是一個block*/
*display:inline; /*給ie7看的.*/
_height:200px; /*給ie6看的,這是ie6的min-height.*/
</style>
li{
width:200px;
min-height:200px;
display:-moz-inline-stack; /*這個是給firefox2看的 inline-stack*/
display:inline-block;
vertical-align:top;
margin:5px;
zoom:1; /*給ie看的,讓ie知道他是一個block*/
*display:inline; /*給ie7看的.*/
_height:200px; /*給ie6看的,這是ie6的min-height.*/
</style>
DONE,問題已經解決。
沒有留言:
張貼留言