2016-04-21 56 views
1

我想讓我的菜單與左側的圖像一起工作。出於某種原因,每當我嘗試將圖像與菜單排列在同一行時,它都不能正常工作。這就是html的樣子,我無法得到CSS的工作。它要麼將菜單扔到圖像下面,要麼背景消失,內容與菜單重疊,但圖像位於正確的位置。圖像的高度也是50px,所以它不應該是一個問題。圖像和菜單定位

HTML:

<div> 
    <img src="logo_small2.png" alt="" id="banner"> 
    <nav> 
     <ul> 
      <li class="selected"><a href="index.html">Main page</a></li> 
      <li><a href="classes.html">Classes</a></li> 
      <li><a href="gamemodes.html">Game modes</a></li> 
      <li><a href="contact.html">Contact</a></li> 
     </ul> 
    </nav> 
</div> 

CSS:

header div { 
    height: 50px; 
    background: #333333; 
} 

#banner, 
header ul li { 
    display: inline-block; 
} 

header nav > ul > li{ 
    box-sizing: border-box; 
    height: 50px; 
    padding: 12px; 
    position: relative; 
} 

現在會發生什麼情況是,旗幟就位在div的背景和菜單是旗幟,在一個背景下新隊。如果我用一個簡單的H1它可以作爲一個魅力>更換IMG>我一無所知,請大家幫忙

+0

如何創建一個小提琴? –

+1

我懷疑'nav'也需要'inline-block'。它目前是塊級,因此100%寬。 –

+0

@Paulie_D我將導航本身設置爲內聯塊,現在它好一點,因爲它不在新行中,但在背景和圖像級別下還有50%,還有什麼想法? – sn4ckhun

回答

1

您的CSS與HTMl不匹配,沒有顯示header

假設div是,實際上頭,導航需要內聯塊我也懷疑。它目前是塊級,因此100%寬。

然後您可以對齊元素。

header { 
 
    height: 50px; 
 
    background: tomato; /* for demo only */ 
 

 
} 
 
header nav { 
 
    display: inline-block; 
 
    vertical-align: middle; 
 
} 
 
header nav ul { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
#banner, 
 
header ul li { 
 
    display: inline-block; 
 
    vertical-align: middle; 
 
} 
 
header nav > ul > li { 
 
    box-sizing: border-box; 
 
    height: 50px; 
 
    padding: 12px; 
 
    position: relative; 
 
}
<header> 
 
    <img src="http://www.fillmurray.com/200/50" alt="" id="banner"> 
 
    <nav> 
 
    <ul> 
 
     <li class="selected"><a href="index.html">Main page</a> 
 
     </li> 
 
     <li><a href="classes.html">Classes</a> 
 
     </li> 
 
     <li><a href="gamemodes.html">Game modes</a> 
 
     </li> 
 
     <li><a href="contact.html">Contact</a> 
 
     </li> 
 
    </ul> 
 
    </nav> 
 
</header>

+0

這是完美的!代碼確實不完整,這是我的錯。一個標題確實存在,但菜單不是唯一的標題,因爲我試圖在菜單上方出現一個較大的圖像,因爲某些原因而弄亂了菜單。你也有可能的解決方案嗎? – sn4ckhun

+0

沒有你想要做的事情的圖像很難提供建議。我會建議詢問一個新問題,以免使這個答案無效。 –

-1

可能的原因是圖像的寬度不允許inline-block的COMAND:

試試這個:

img{ float:left; width:50%; vertical-align:middle;} 
ul{float:right;width:40%;vertical-align:middle;} 
+0

只是猜測在任意寬度不是真的答案...是嗎? –

+0

如果寬度是問題,那麼可能不會是首先解決問題的一種方法。 –