2012-08-04 45 views
0

我有一個包含3周的div被細分爲FF一個div容器:左邊一列,右列和頁腳,的div總是需要調整邊距屬性

所以基本的東西應該像這些;

------------------------------- 
'  '      ' 
'  '      ' 
'  '      ' 
'  '      ' 
'  '      ' 
'  '      ' 
'  '      ' 
'  '      ' 
'  '      ' 
------------------------------- 
'        ' 
'        ' 
------------------------------- 

左列和右列動態填充來自數據庫的信息;這意味着每個div的(左/右)可以佔用頁面的小部分或大部分區域;

但在我的情況,我有一個意想不到的行爲,正確的div似乎開始幾乎低於左div,如在;

--------- 
'  '      
'  '      
'  '      
'  -----------------------      ' 
'  '      ' 
--------'      ' 
     '      ' 
     '      ' 
     '      ' 
     '      ' 
     ----------------------- 

因此,這意味着,當我想正確的股利像左div的頂部,我不得不重新調整所有的時間,但是這不是我想做的事情,我想左右div的頂部一直都是一樣的......下面是我對這兩者的源代碼,有人可以用jsfiddle來做這件事,以便快速查看確切的結果嗎?

div#divLeft 
{ 
background-color: green; 
/*height: 100%;*/ 
width: 25%; 
float: left; 
} 

div#divRight 
{ 
background-color: red; 
width: 73%; 
position: relative; 
margin-top: -52px; 
margin-left: 25%; 
float: left; 
} 

這裏是一個jsfiddle的東西; http://jsfiddle.net/Rqyz7/ - >希望工程,我覺得我有一些問題與網現在... TIA

+0

你並不需要的位置是:絕對的div容器。你可以擺脫位置:在#divRight上的相對位置,我會在#divRight右邊的margin-top和margin-left,他們應該排隊 – jrubins 2012-08-04 18:43:17

+0

你可以嘗試把它們放入一個固定寬度的div大於兩個動態加載的div並排 – Dom 2012-08-04 18:48:15

回答

0

更新小提琴:http://jsfiddle.net/nupul/Rqyz7/7/

基本上當您添加保證金向右格都將增加它的寬度由「總數超過75%」即width:73%margin-left:25% - 這會使div的寬度大於允許的 75%(因爲divLeft爲25%)。要麼修正邊距,放下它或者更精確的數字。

第二:頁腳需要清除浮點數,以便在右側div之後但在左側和右側div底部流動。

+0

但您是否注意到divRight項目似乎並不完整? – 2012-08-04 19:12:04

0

基本上,第二列試圖在第一列之間加上一些保證金,並且不適合,換一個新行。 有兩種方法,問題在於你在做這兩件事情。您:

  • 給兩列float: left,和容器overflow: auto,讓容器增長到最高的兩個,因此保持頁腳重疊它們。
  • 給第一個float: left,第二個爲margin-left。這樣,無論第一列的高度如何,頁腳都會在第二列之後出現。當第一列不會比第二列高時使用它。

您可以從第二個div刪除margin-left或float,具體取決於您希望列的增長行爲。

+0

我不會使用空格與「清除:兩個」。我只是給包含兩個浮動元素的div的「overflow:auto」。 – jrubins 2012-08-04 18:58:07

+0

你說得對,那好些,我在想太老派。我更新了我的答案,謝謝。 – djjeck 2012-08-05 19:04:17

0

給出div列樣式屬性display:inline-block;vertical-align:top;,並刪除任何floatmargin屬性。這將同時以內聯方式顯示,同時允許您將垂直對齊定義爲頂端。

的jsfiddle樣品here和樣品具有較大列here