二分之一

Just Jason's Blog

如何让不定宽度的UL相对父级DIV居中

ul居中在oprea和firefox中用margin:0 auto;和text-align:center;就可以轻松的实现了,然而在IE中确是居左显示的,具体的错误原因就有待高手去考证。

下面的方法可以轻松的实现ul居中显示,注意ul和li都必须定义float,否则无效哦。相信大家都知道float:leftfloat:right,那么是否想过float:center呢?让UL居中浮动!

<div id="dondiv">
    <ul>
        <li>列表一</li>
        <li>列表二</li>
        <li>列表三</li>
    </ul>
</div>

我们希望实现li是浮动的,并且居中的(注:li个数不固定,ul宽度未知)。可以设置ul的text-align:center,再设置li的display,这样的话就可以实现居中,但这样不是我们的初衷,我们需要实现的是float:center

大家来了解下position:relative,它是依据left,right,top,bottom等属性在正常文档流中偏移位置。那么就可以 让 ul为position:relative;left:50%,然后再让li向左浮动,再让position:relative;right:50%(或 者left:-50%),那么li就像向中间浮动一样居中了。

#dondiv{
    position:relative;
    width:100%;
    height:80px;
    background-color:#eee;
    text-align:center;
    overflow:hidden;
}
#dondiv .donul {
    float:left;
    position:relative;
    left:50%;
}
#dondiv .donul li{
    position:relative;
    right:50%;
    float:left;
    margin:10px;
    padding:0 10px;
    border:solid 1px #000;
    line-height:60px;
}

最后修改时间:2014年9月9日星期二晚上7点00