2009-06-28 3 views
25

So habe ich die folgende CSS anstelle eine horizontale Navigationsleiste angezeigt werden mit:So richten Sie einen Float zentral aus: linkes UL/li-Navigationsmenü mit CSS?

.navigation ul { 
    list-style: none; 
    padding: 0; 
    margin: 0; 
} 

.navigation li { 
    float: left; 
    margin: 0 1.15em; 
    /* margin: 0 auto;*/ 
} 

.navigation { 
    /* width: auto;*/ 
    /* margin: 0 auto;*/ 
    text-align: center; 
} 

Meine Frage ist: Wie richte ich die Navigationsleiste mittig über dem Titel?

+0

Sie rufen auf die Bindestrichseite? Du bist aus diesem Land verbannt. ;) (Scherz! NetHack-Spieler können den ersten Satz erkennen.) –

Antwort

20

Geben Sie Ihre .navigation ul Breite und verwenden Sie Marge: 0 auto;

.navigation ul 
{ 
    list-style: none; 
    padding: 0; 
    width: 400px; 
    margin: 0 auto; 
} 
+7

Mit definierter Breite ist das nicht die echte Lösung. Wenn noch ein Listenelement vorhanden ist und die Breite geändert werden muss. Ben Marinis Link ist die richtige Lösung, die ich gefunden habe –

+1

Marinis Antwort sollte als die richtige Antwort markiert werden. –

2

Sie könnten die <li> ‚s eingestellt display: inline sein, stellen Sie dann text-align: center auf dem <ul>. Wenn Sie das tun, können Sie die float: left aus den Listenelementen entfernen, und Sie müssen keine feste Breite für die Navigationsleiste haben, als wenn Sie margin: 0 auto verwenden würden.

<html> 
    <head> 
    <style> 
     ul { 
     list-style: none; 
     text-align: center; 
     } 

     li { 
     display: inline; 
     margin: 0 1.15em; 
     } 
    </style> 
    </head> 

    <body> 
    <ul> 
     <li>Option 1</li> 
     <li>Option 2</li> 
     <li>Option 3</li> 
    </ul> 
    </body> 
</html> 
13

Nun, margin:0 auto auf etwas zu verwenden, muss es eine definierte Breite aufweisen. Wahrscheinlich die beste Abhilfe ist:

ul li { 
    display: inline; 
    list-style-type: none; 
} 
ul { 
    text-align:center; 
} 
+1

Sie können auch 'display: inline-block' verwenden, wenn Sie diese Methode verwenden möchten, aber trotzdem' border', 'background und andere Blockeigenschaften verwenden können. –

+0

Funktioniert das in allen Browsern? Irgendwelche Vorbehalte? – Justin

5

Es gibt einige Einstellungen wie Float, Rand, die diesen Code beeinträchtigen können, um ordnungsgemäß zu funktionieren. Es funktioniert auch in IE7. Ich habe diesen Code von an article over at CSS Wizardry.

.navigation ul 
{ 
    list-style: none; 
    padding: 0; 
    margin: 0; 
    text-align: center;/*make this change*/ 
} 
.navigation li 
{ 
    float: none;/*make this change*/ 
    display:inline;/*make this change*/ 
    margin: 0 1.15em; 
/* margin: 0 auto; */ 
} 
.navigation li a { 
    display:inline-block;/*make this change*/ 
} 
.navigation 
{ 
    /*width: auto;*/ 
    /*margin: 0 auto;*/ 
    text-align: center; 
} 
2

Dieser funktioniert super mit mir! (wenn ich mich richtig: IE7 +)

Fiddle: http://jsfiddle.net/fourroses666/zj8sav9q/3/

.nav{list-style:none; text-align:center;} 
.nav ul{list-style:none;} 
.nav li{display:inline;} 
.nav a{text-decoration:none; font-size:20px; line-height:20px; display:inline-block;} 

<nav class="nav" role="navigation" aria-label="main navigation"> 
    <ul> 
    <li><a href="#">Home</a></li> 
    <li><a href="#">Menu</a></li> 
    <li><a href="#">Onze producten</a></li> 
    <li><a href="#">Impressie</a></li> 
    <li><a href="#">Media</a></li> 
    <li><a href="#">Contact</a></li> 
    </ul> 
</nav> 
0
.navigation ul 
{ 
    list-style-type: none; 
    padding: 0px; 
    width: 200px; 
    margin: 0 auto; 
} 
0

Wenn Sie behalten möchten mit Ihrem LI in Ihrem Code schwebte, können Sie diese verwenden:

JSFiddle: https://jsfiddle.net/Lvujttw3/

<style> 
.wrapper { 
    width: 100%; 
    background-color:#80B5EB; 
    text-align: center; 
    } 
.intWrapper { 
    display: inline-block; 
    } 
.mainMenu { 
    padding: 0; 
    min-height: 40px; 
    margin:auto; 
    } 
ul { 
    list-style-type: none; 
    } 
ul li { 
    float: left; 
    font-size: 15px; 
    line-height: 40px; 
    } 
ul li A { 
    display: block; 
    color: white; 
    font-weight: bold; 
    font-family: Arial; 
    text-decoration: none; 
    min-height: 40px; 
    padding: 0 36px; 
    } 
</style> 

<div class="wrapper"> 
    <div class="intWrapper"> 
     <ul class="mainMenu"> 
      <li><a href="one.htm" style='background-color:red'>ITEM ONE</a> 
      </li><li><a href="two.htm">ITEM TWO</a> 
      </li><li><a href="three.htm" style='background-color:red'>ITEM THREE</a>   
      </li> 
     </ul></div> 
    </div> 
</div> 
1
ul { 
display: inline-block; 
text-align: center; 
} 
-1
style="position: absolute; z-index: 1;" 
+2

Bitte fügen Sie weitere Informationen für mehr Klarheit auf Ihre Antwort – CodeChanger

Verwandte Themen