2011-08-12 11 views
6

Czy ktoś może mi pomóc, aby wyśrodkować „UL” w „div” w pionie i poziomie, zgodnie z poniższym kodzie?Centrum ul div w pionie i poziomie

Dziękuję bardzo!

<div id="nav"> 
    <ul> 
    <li><a class="top" href="#top"><span></span></a></li> 
    <li><a class="bottom" href="#bottom"><span></span></a></li> 
    <li><a>Link 1</a></li> 
    <li><a>Link 2</a></li> 
    </ul> 
</div> 

css

#nav { 
    height:35px; 
    border-bottom:1px solid #ddd; 
    position:fixed; 
    top:0px; 
    left:0px; 
    right:0px; 
    background:#fff url(../images/navigation/nav.png) repeat-x center left; 
    z-index:999999; 
} 

#nav ul { 
    list-style:none; 
    margin:auto; 
    float:left; 
    padding:0; 
    display: block; 
} 

#nav ul li { 
    display:inline; 
    float:left; 
    margin:0px 2px; 
} 

#nav a { 
    font-size:13px; 
    font-weight:bold; 
    float:left; 
    padding: 2px 4px; 
    color:#999; 
    text-decoration: none; 
    border:1px solid #ccc; 
    cursor: pointer; 
    background:transparent url(../images/navigation/overlay.png) repeat-x center left; 
    height:16px; 
    line-height:16px; 
} 

#nav a:hover { 
    background:#D9D9DA none; 
    color: #fff; 
} 

#nav a.top span, #nav a.bottom span { 
    float:left; 
    width:16px; 
    height:16px; 
} 

#nav a.top span { 
    background:transparent url(../images/navigation/top.png) no-repeat center center; 
} 

#nav a.bottom span { 
    background:transparent url(../images/navigation/bottom.png) no-repeat center center; 
} 
+0

nie można połączyć "float: left" i "margin: auto", po prostu kończą się po lewej stronie, przetestowane w "#nav ul", aby zastąpić "float: left" whit "width: 200px; border: solid red 1px; ", a następnie jego środek –

Odpowiedz

10

Użyj display: inline-block w połączeniu z text-align: center. Jest to dobre, ponieważ nadal będzie działać, jeśli dodasz lub usuniesz linki.

Patrz:http://jsfiddle.net/thirtydot/VCZgW/

istotnych zmian zrobiłem:

#nav { 
    /*height:35px;*/ 
    padding: 6px 0; 
} 
#nav ul { 
    /*float:left;*/ 
    text-align: center; 
} 
#nav ul li { 
    /*float:left;*/ 
    vertical-align: top; 
    display: inline-block; 
} 
+0

Cool działa! Dziękuję bardzo! – shub

0

Prawo zrobić to w ten sposób:

umieścić styl na ul {display:table; margin:0 auto;}

który jest wszystko;)

+0

to tylko centra poziome – Erdnuss

+0

Pozioma i pionowa, ale jeśli jest to tylko poziome dla Ciebie oznacza to, że opuściłeś to: ' '' # nav ul li { /* float: left; */ vertical-align: top; } '' ' Przekształcasz go w tabelę, komórki tabeli mają wyśrodkowany hor i vert, ale jeśli zdefiniujesz' vertical- wyrównaj "pójdzie do góry, środka lub centrum zależą od tego, co wybierzesz. – iva

Powiązane problemy