我的假设是在使用绝对定位时,它是相对于父div。然而,这个jsfiddle似乎并没有与之相提并论。我试图做的是有一个三排液体布局,中心行设置一个最小高度。顶部和底部具有固定的高度。不幸的是,我只编写IE7编码,并没有在我的CSS中使用min-height的奢侈。使用JQuery时,中心会调整大小,但页脚不会相对于父级重新定位。信息和jsfiddle如下。
浏览器:IE7
样式:CSS
HTML:4.0严格
JQuery:1.10.1
在添加位置之后小提琴:相对和高度100%到包装jsfiddle
HTML
<div id="wrapper">
<div id="top"></div>
<div id="center"></div>
<div id="bottom"></div>
</div>
CSS
html, body{
width:100%;
height:100%;
}
#wrapper{
background-color:blue;
height:100%;
width:100%;
margin:0px;
padding:0px;
min-width:700px;
}
#top{
position:absolute;
top:0px;
width:100%;
height:100px;
min-width:700px;
background-color:green;
}
#center{
position:absolute;
top:100px;
bottom:20px;
min-width:700px;
width:100%;
background-color:yellow;
}
#bottom{
position:absolute;
bottom:0px;
min-width:700px;
width:100%;
height:20px;
background-color:purple;
}
JQuery的
var resizeTimer = false;
function doResize() {
if ($("body").height() == 500) {
//do nothing
}
else if ($("body").height() < 500) {
$("#wrapper").height(500);
$("#center").height(380);
}
else {
$("#wrapper").height("auto");
$("#center").height("auto");
}
resizeTimer = false;
}
$(window).on("resize", function () {
if (resizeTimer) {
clearTimeout(resizeTimer);
}
resizeTimer = setTimeout(doResize, 300);
});
答案 0 :(得分:1)
该位置不是相对于父项,而是相对于具有定位的最近父项(或文档,如果没有父项定位)。
将position:relative
添加到CSS的父元素中,使其具有定位功能,而无需将其实际移动到任何位置。
答案 1 :(得分:1)
绝对定位是相对于在其上设置位置的最接近的父(在父链上行)(如position: relative
或position: absolute
)。如果父链中没有父项具有定位集,则绝对定位相对于文档边界。
如果您希望position: absolute
相对于父项,则父项上设置position: relative
。这不会改变父级的位置,但会将子级的定位范围限定为相对于父级而不是相对于某种更高级别的父级或文档。