2011-10-25 31 views
3

我試圖使用中心保證金我的div:汽車是這樣的:使用邊距自動居中div時是否需要寬度?

#main-container #control-panel {margin: 10px auto;} 

但它仍然靠左對齊。我發現我必須指定div的寬度,以便它將居中:

#main-container #control-panel {width: 300px; margin: 10px auto;} 

那麼,寬度是否需要居中div?我認爲div的寬度應該由它的內容自動修改? (在這種情況下,我在控制面板div中有一個按鈕)

結果在最新的Chrome中進行了測試。

+0

非常感謝,大家。我有另一個相關的問題:我怎樣才能在一個div中放置一個按鈕?如果我指定按鈕的寬度,它會比我預期的要長得不自然。 – clwen

+1

'input type =「button」'或'input type =「submit」'是一個內聯元素,所以你可以在父元素上使用樣式'text-align:center;'來居中它。當然,你沒有任何其他的東西在干擾。 – Guffa

+0

是的,這是必要的這裏是一個例子http://jsfiddle.net/jTd7e/ – SiriusKoder

回答

3

是的,你必須define width你的DIV,如果你想他center

但如果你不想固定寬度,則只是定義在父DIV text-align:center &定義display:inline-block它是這樣的:

.parent{ 
text-align:center; 
} 

.child{ 
display:inline-block; 
text-align:left; 
} 

檢查這個http://jsfiddle.net/sandeep/HzuYv/

2

div默認情況下,元素始終爲auto(父容器的寬度爲100%)。你想中心這個元素,並且你設置了margin:0 auto,它將被集中,但是你不會注意到它,因爲它的寬度是100%。

這就是爲什麼它看起來像它的不居中:)

+1

默認的寬度實際上不是'100%',而是'自動'。 – Guffa

+0

是的,技術上正確。但是以百分比形式解釋它更容易,而不是「與父容器一樣寬」。更新我的回答以反映這一點。 – MarioRicalde

1

是,使用margin-left/margin-right:auto;時,你必須指定DIV的寬度。

沒有寬度a div當然有一個auto寬度,所以它是中心對齊,但你不能告訴它填充容器。

+0

默認寬度實際上不是'100%',而是'auto'。 – Guffa

+0

公平點@Guffa。我應該說我的意思並不是字面意思是「寬度:100%」,而是它的容器100% – Curt

6

是的,這是必要的。

div的寬度的默認值是auto,這意味着它將試圖佔用所有可用的水平空間。由於不會在邊上留下邊距,所以自動邊距將爲零。

-1

是寬度是必要的,試試這個:

#control-panel { width=970px;margin: 0 auto;} 
相關問題