2013-03-29 204 views
33

因此,我試圖創建一個水平列表以供我在設計的新網站上使用。我已經嘗試了一些已經在網上找到的建議,例如將'float'設置爲左側等,但在修復問題時這些建議都沒有奏效。CSS水平列表項目

ul#menuItems { 
 
     background: none; 
 
     height: 50px; 
 
     width: 100px; 
 
     margin: 0; 
 
     padding: 0; 
 
    } 
 
    ul#menuItems li { 
 
     display: inline; 
 
     list-style: none; 
 
     margin-left: auto; 
 
     margin-right: auto; 
 
     top: 0px; 
 
     height: 50px; 
 
    } 
 
    ul#menuItems li a { 
 
     font-family: Arial, Helvetica, sans-serif; 
 
     text-decoration: none; 
 
     font-weight: bolder; 
 
     color: #000; 
 
     height: 50px; 
 
     width: auto; 
 
     display: block; 
 
     text-align: center; 
 
     line-height: 50px; 
 
    }
<ul id="menuItems"> 
 
    <li> 
 
    <a href="index.php">Home</a> 
 
    </li> 
 
    <li> 
 
    <a href="index.php">DJ Profiles</a> 
 
    </li> 
 
</ul>

目前我不能確定是什麼原因造成這個問題的,我將如何去化解呢?

+1

使用'float'屬性 – Ron

+0

請參閱http://css.maxdesign.com.au/listutorial/index。htm –

回答

55

更新回答

我注意到很多人都在用這樣的回答,所以我決定來更新它一點點。如果您想查看原始答案,請查看下面的內容。新的答案演示瞭如何將一些樣式添加到列表中。

ul > li { 
 
    display: inline-block; 
 
    /* You can also add some margins here to make it look prettier */ 
 
    zoom:1; 
 
    *display:inline; 
 
    /* this fix is needed for IE7- */ 
 
}
<ul> 
 
    <li> <a href="#">some item</a> 
 

 
    </li> 
 
    <li> <a href="#">another item</a> 
 

 
    </li> 
 
</ul>

+1

upvoted答案,因爲它確實解決了這個問題,但花車是跛腳和舊!除非你使用IE7-,你應該使用'display:inline-block;' – PlantTheIdea

+0

@LifeInTheGrey這是一個很棒的點 - 我會補充說第二個選項 - 謝謝你的提示 –

+1

無後顧之憂,編輯你的答案包括修復IE7及以下版本:http://uncorkedstudios.com/2011/12/12/how-to-fix-the-ie7-and-inline-block-css-bug/ – PlantTheIdea

4

一個更好的方法是使用inline-block,因爲你並不需要在列表的末尾使用clear:both了。

試試這個:

<ul> 
    <li> 
     <a href="#">some item</a> 
    </li> 
    <li> 
     <a href="#">another item</a> 
    </li> 
</ul> 

CSS:

ul > li{ 
    display:inline-block; 
} 

看一看在這裏:http://jsfiddle.net/shahverdy/4N6Ap/

1

您還可以使用內嵌塊,以避免浮動元素

<ul> 
    <li> 
     <a href="#">some item</a> 
    </li> 
    <li> 
     <a href="#">another item</a> 
    </li> 
</ul> 

,然後風格:

li{ 
    /* with fix for IE */ 
    display:inline; 
    display:inline-block; 
    zoom:1; 
    /* 
    additional styles to make it look nice 
    */ 
} 

這種方式你不會需要浮動任何東西,消除th e需要clearfixs

+0

我試過這個,但它們仍然沒有顯示水平 - www.s4nr.com/SpecialTesting –

+0

@LoadData你的菜單寬度爲100px,你的li的寬度爲128px,所以第二個項目將下降到下一行。 – Jamie

0

Here您可以找到一個工作示例,其中提供了一些關於動態調整列表大小的更多建議。

我用顯示:inline-block的和百分比填充,這樣父列表可以動態改變大小:

display:inline-block; 
padding:10px 1%; 
width: 30% 

加上兩個規則消除填充第一個和最後一個項目。

ul#menuItems li:first-child{padding-left:0;} 
ul#menuItems li:last-child{padding-right:0;}