2012-10-15 14 views

回答

1

從按鈕樣式刪除float:left,並添加display:inline-block. 添加overflow:auto#top-menu .center什麼

說明

Float:left:使您的div準確左對齊父div。

disply:block:使div佔據整個水平空間。

Overflow:auto:使父div根據ot內的內容進行擴展。

既然你需要把兩個div放在一起給inline-block。內聯塊使div根據div內的內容進行擴展。

LIVE DEMO

+0

這個工作方式只需添加'autoflow:auto',不需要刪除'float:left'或者添加'inline-block'。你能解釋一下這裏發生了什麼,它爲什麼起作用?我在溢出時閱讀了這個http://www.w3schools.com/cssref/pr_pos_overflow.asp,在這種情況下沒有意義。 –

+0

用解釋檢查更新的答案 – Sowmya

+0

我認爲只有'overflow:auto'在這裏很重要,因爲我可以看到我的修改http://jsfiddle.net/qhoc/qKXD2/7/,因爲我在不刪除'float:left'的情況下添加了它。我猜我以前的CSS不起作用,因爲'#top-menu .center'沒有寬度值(單擊元素列表中的'.center'時,基於Firebug)。當我添加'overflow:auto'時,它具有'width'。雖然'#頂部菜單'仍然具有整個屏幕的寬度(上面的鏈接中的黑色邊框),但它可以工作。爲什麼css有這種行爲? –

2

變化#頂部菜單.center和#logo風格像這樣的,我認爲這是你想要

#logo { 
    background-color: yellow; 
    display: block; 
    float: left; 
    width: 180px; 
    height: 45px; 
    position:absolute; 
} 


#top-menu .center { 
    width: 235px; 
    margin auto; 
} 

DEMO

+0

那麼,我的寬度是爲了其他設計理由爲235px(例如,有超過2個按鈕等..) –

+0

檢查我的新答案與超過2按鈕等。也許有幫助 – Afshin

0

這是解決方案。刪除徽標左側的浮標並放入邊距:0 auto;看看下面的鏈接

http://jsfiddle.net/qKXD2/6/

非常感謝

+0

謝謝,但我寧願將藍色和紅色按鈕保持在同一個水平條中。 –