2010-12-16 83 views
0

我一直在玩CSS3靈活的盒子模型一點點這篇文章中描述:CSS 3 Flexible Box ModelCSS3靈活的盒子模型和嵌套佈局

我試圖創建一個簡單的VBOX有一個嵌套的hbox,這樣的事情:

<div class="vbox"> 
    <div>Header</div> 
    <div class="hbox"> 
     <div>Section 1</div> 
     <div>Section 2</div> 
     <div>Section 3</div> 
    </div> 
    <div>Footer</div> 
</div> 

但是,hbox的內容是垂直佈局而不是水平佈局的。我做錯了什麼,以及如何正確地做到這一點?謝謝。

+0

你用的是什麼css? – jhuebsch 2010-12-16 20:54:23

+0

css在上面提到的文章裏面(我不想在這裏粘貼整個東西,而只是包含文章的鏈接) – 2010-12-16 20:56:11

回答

2

問題是.hbox規則中的display: box;聲明被.vbox > *規則中的display: block;覆蓋。你有兩個選擇:

1使display: box覆蓋了更具體的規則:

.hbox { 
    display: -webkit-box !important; 
    -webkit-box-orient: horizontal; 
    -webkit-box-align: stretch; 
    display: -moz-box !important; 
    -moz-box-orient: horizontal; 
    -moz-box-align: stretch; 
    display: box !important; 
    box-orient: horizontal; 
    box-align: stretch; 
} 

Approach 1 working example here,這種方法的主要缺點是,你與CSS的默認規則的特殊性,其搞亂可能會在其他地方引起混淆。

2卸下display: block從更具體的規則:

.vbox > * { 
    -webkit-box-flex: 0; 
    -moz-box-flex: 0; 
    box-flex: 0; 
} 

Approach 2 working example here,這種方法的主要缺點是,你需要的.hbox.vbox所有直接孩子是塊級元素。

+0

謝謝羅伯特,現在都有道理。我完全錯過了顯示:在該CSS中的塊。 – 2010-12-17 16:00:30

+0

@IgorB請記住,當某人對您的某個問題給出正確答案時,請點擊大記號以接受答案。如果您有接受答案的歷史,更多的人會回答您未來的問題。 – robertc 2010-12-17 16:41:24

+0

羅伯特,謝謝你指出。完成。 – 2010-12-17 22:07:32