2013-01-24 127 views
2

我有一个uldiv,并希望包含div不受小孩ul在高度方面的影响。如何防止父母的子女与子女一起成长?

的jsfiddle:http://jsfiddle.net/9eCq6/3/

谈到的jsfiddle,我想黄div到不会比蓝divs高,而对于颜色的divs下方的文本块不被下推红色ul - 也就是说,我希望它重叠下面的文本块。

我怀疑答案在于定位,并且受到应用花车的影响,但是我还没有找到解决方案。我该怎么做,或者阅读,找到解决方案?

编辑:我不想给父母一个固定的高度,因为我不知道可能会添加什么内容。

+0

@PranavKapoor웃查看我的编辑 –

回答

3

使用绝对定位从父母分离。你还需要overflow: visible和clearfix:

.wrap { 
    position: relative; 
    overflow: visible; 
} 

.wrap::after { 
    content: ""; 
    display: table; 
    clear: both; 
} 

.right { 
    position: absolute; 
    top: 0; 
    right: 0; 
} 

.right ul { 
    position: absolute; 
    top: 100%; 
    left: 0; 
} 
+0

这不会阻止按下div,但黄色背景div仍然会随着ul增长。你知道如何预防吗? –

+0

@tnorthcutt更新。 – Pavlo

+0

这似乎是完美的。谢谢! –

0

给父母固定大小,并使用overflow:hidden

+1

对不起,我应该指定我想避免父母的固定高度,因为我不知道可能会添加哪些内容。 –

+0

这些是相互矛盾的要求。 –

1

This old BrainJar article是CSS定位一个伟大的,全面的参考。这绝对是过时的,但令人惊讶的是好。如果您首先花时间深入了解您正在处理的底层系统,那么您会遇到这种问题。

也就是说,你的问题的(部分)解决方案很简单。将div.under放入div.wrap,并将clear: left;添加到CSS .under选择器。见this fiddle