2012-08-04 44 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