2013-10-04 125 views
0

我知道之前有類似的問題,但我已經嘗試了所有我能找到的解決方案(涉及位置:相對於外部div和位置:絕對內部div),但我不能我得到紅色的div對齊在綠色的下面,而不是堆疊在它的頂部。如何讓這些div垂直堆疊?

HTML:

<body> 
    <div id="outer_div"> 
     <div id="title_div"> 
     </div> 

     <div id="main_div"> 
     </div> 
    </div> 
</body/> 

CSS:

body { 
    height: 1000px; 
    width: 1000px; 
    margin: 0; 
    padding: 0; 
} 

#outer_div { 

    position: relative; 
    height: 100%; 
    width: 100%; 
    background-color: blue; 
    display: block; 
}  

#title_div { 
    top: 0; 
    left: 0; 
    position: absolute; 
    height: 25%; 
    width: 100%; 
    background-color: green; 
    display: block; 
} 

#main_div { 
    top: 0; 
    left: 0; 
    position: absolute; 
    height: 20%; 
    width: 100%; 
    background-color: red; 
    display: block; 
} 

Here's the jsFiddle link.

謝謝!

+2

divs是塊元素,所以自然地自上而下地流動 - 爲什麼你需要改變它們的默認位置?紅色和綠色從0,0開始,那麼你期望什麼?刪除一切,但顏色風格,也許高度和寬度,看看會發生什麼 –

+0

我已經更新您的jsfiddle與可能的解決方案(http://jsfiddle.net/denisonluz/kFaVe/1/) –

+0

@ jenson-button-event,you '完全正確。這會教我編碼的晚,使問題複雜化,然後試圖抽象它。謝謝:) –

回答

2

爲了讓紅格顯示綠色的div下,執行以下操作

  1. #main_div刪除"position: absolute;"#title_div
  2. 添加"float: left;"#main_div#title_div

這將導致各div儘可能地離開自己。如果它們不能並排放置,則第二個會自動推到第一個之下。

+2

你真的不需要做額外的浮動。浮游物被用來並排地取得事物,這與你想要的相反。但是,是的,這是答案 – russtuck91

0

對於兩個內部div,您都具有相同的絕對頂部位置。有很多方法可以改變這種情況,包括允許div的自然排序,改變頂部位置等。