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

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

下面的方法可以轻松的实现ul居中显示,注意ul和li都必须定义float,否则无效哦。相信大家都知道float:left和float: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;

}

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐