在我使用的每个浏览器中,除了ie8之外,绝对定位的元素可以根据具有相对位置的最近父元素进行定位。
下面的代码显示了表格中的两个div。顶部div具有position:relative,但是,嵌套的,绝对定位的元素不尊重它的边界(在ie8中,它位于页面的底部而不是父div的底部)。
有人知道解决这个问题吗?
<style>
#top {
position: relative;
background-color: #ccc;
}
#position_me {
background-color: green;
position: absolute;
bottom: 0;
}
#bottom {
background-color: blue;
height: 100px;
}
</style>
<table>
<tr>
<td><div id="top"> Div with id="top"
<div id="position_me"> Div with id="position me" </div>
</div>
<div id="bottom"> Div with id="bottom"
<p>Lorem ipsum dolor sit amet.</p>
</div></td>
</tr>
</table>
答案 0 :(得分:24)
声明doctype。我建议您使用HTML5 doctype:
<!DOCTYPE html>
答案 1 :(得分:19)
添加:
#top {
//height: 100%;
}
#position_me {
//left: 0;
}
它强制IE8在怪癖模式下正确计算位置。 有很多方法可以实现它:
//zoom: 1;
//writing-mode: tb-rl;
答案 2 :(得分:13)
那是因为您没有使用文档类型。 IE工作在"quircks" mode。
试试这个doctype:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
答案 3 :(得分:6)
我总是使用HTML5 doctype,但在我的情况下,唯一的问题是父元素需要“position:relative;”特别设定。之后,它运作得非常好。
答案 4 :(得分:2)
您也可以使用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
这解决了我的问题!
答案 5 :(得分:0)