2012-07-18 105 views

回答

1

这是不容易的 '清晰的' 绝对定位的元素。我发现这样做的一个方法是在jQuery中获取高度,然后将该高度应用于容器。例如:

$('#container').height($('#ab_positioned').height());

+0

这是一个好主意,如果CSS没有出现,我会将其标记为答案。 – shrewdbeans 2012-07-18 16:36:27

1

您可以设置min-height{...}.main-content.pad,如果侧边栏有一个固定的高度。

2

不幸的是,没有办法在直接CSS中做到这一点。当你绝对放置某物时,将其从文档流中移除,因此它不再影响父级的高度。

你可以用javascript解决它,因为@ scott-brown已经建议。

但是,我更喜欢所有的CSS解决方案。你可以使用清除,无论哪一方不再使用该标记的浮动侧边栏布局:

<div class="page"> 
    <div class="content"> 
    Primary content here. 
    </div> 
    <div class="sidebar"> 
    Sidebar content here. 
    </div> 
</div> 

这个CSS:

.primary { 
    float: left; 
    width: 66%; 
} 
.sidebar { 
    float: right; 
    width: 33%; 
} 
.page:after { 
    content: "."; 
    display: block; 
    height: 0; 
    clear: both; 
    visibility: hidden; 
    zoom: 1; 
} 

.page的风格被称为clearfix(more details here)。

这个布局技术的好处是,你可以交换.primary.sidebar列不改变的标记,只是通过改变float:leftfloat:right,反之亦然。

clearfix还意味着父元素将包含子元素,所以如果需要,您可以在.page上设置背景颜色,并且它将一直延伸到任何较长列的底部。

+0

谢谢Scott,这是一个很好的解释。不幸的是,在这种情况下,我必须坚持绝对定位,但这是完美的解决方案。 – shrewdbeans 2012-07-18 19:58:27

相关问题