IE9下absolute定位,bottom不起作用

在IE8、chrome、Firefox下显示为:

clipboard.png

但是在IE9下显示有所不同:(必须是IE9,如果是IE10控制台转到IE9内核,会显示正常)

clipboard.png

这是什么原因造成的?有什么好的解决办法?

下面是完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        td{
            position: relative;
            width:120px;
        }
        .span{
            position: absolute;
            top:0;
            bottom:0;
            display: inline-block;
            left:0;
            right:0;
            background-color: red;
        }
    </style>
</head>
<body>

<table>
    <tbody>
    <tr>
        <td><span class="span"></span></td>
        <td>这是一个td</td>
    </tr>
    </tbody>
</table>
</body>
</html>
阅读 5.9k
6 个回答

把display:inline-block改成display:block试试,完全不明白你这么写有什么意义

因为你的td没有高度

应该是不支持用top、bottom、left、right自动撑满父级

撑满父级方式不对,top right bottom left解析异常,可以更改为宽高100% display:block即可

我觉得ie9在top和bottom同时存在的情况下bottom不会生效,所以如果想实现撑满父级的话,可以使用margin-bottom: -500px; top: 0;然后td设置 overflow:hidden;来达到子节点填充父级的目的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题