【问题标题】:div height 100% inside td wrong computed in ie and opera在 ie 和 opera 中计算的 td 内的 div 高度 100% 错误
【发布时间】:2013-10-27 11:02:27
【问题描述】:

我正在尝试创建 标题容器布局。标题高度是可变的,容器应始终填充其余空间(宽度、高度)。

IE (9,10) 和最新的 Opera 计算布局表的高度错误,因此出现滚动条。其余浏览器计算正确(Safari、Chrome、Firefox)。

<div class="header-container-layout">
<table border="0" cellspacing="0" cellpadding="0">
    <tr class="layout-hdr">
        <td style="background:#aaa">
            asdasdas asdasd 
        </td>
    </tr>
    <tr class="layout-content" >
        <td style="height:100%;">
            <div class="layout-content-inner" style="background:#ccc;">


            </div>
        </td>
    </tr>
</table>
</div>


.header-container-layout{
    height:100%;
    position:absolute;
    left:0;
    top:0;
    right:0;
    bottom:0;
}
.layout-content-inner{
    height:100%;
    position:relative;
    overflow:hidden;
}
table{
    width:100%;
    height:100%;
}

你可以在这里看到情况:http://jsfiddle.net/95und/9/

这个没有javascript有解决办法吗?

谢谢!

编辑:我的问题与滚动条的出现无关,我可以通过溢出来避免它们:隐藏。问题是我想将内容绝对定位到容器的底部。

【问题讨论】:

  • 嗯,进一步考虑这一点,我正在研究一种具有内联样式的基于表格的布局......您与该特定标记的关系如何?
  • 我对想法持开放态度!

标签: html css internet-explorer opera


【解决方案1】:

好吧,将overflow:hidden 添加到.header-container-layout 会使滚动条在Opera 中消失:

.header-container-layout{
    height:100%;
    position:absolute;
    left:0;
    top:0;
    right:0;
    bottom:0;
    ***overflow:hidden;***
}

我现在实际上不能非常容易地在 IE 上进行测试,但我怀疑它的行为可能相同。

当然,唯一的问题是,如果您的内容特别长,它可能会被截断。我猜这取决于你的计划。

http://jsfiddle.net/yochannah/95und/10/

【讨论】:

  • 这正是我的问题。我可以添加溢出:隐藏,但我想绝对定位容器内的内容,并且无论如何都会隐藏。见这里:jsfiddle.net/95und/12
  • @GeorgeMavritsakis 啊,好吧......我猜既然你说页眉高度是可变的,你就不能像ryanfait.com/sticky-footer那样做一个负边距粘性页脚技巧
  • 恐怕不行。实际上,目前我已经使用 javascript 和绝对定位实现了标题容器布局,因此当标题高度发生变化时,我会重新计算位置。我正在寻找一种更优雅的方式来自动处理标题大小的变化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-31
  • 2011-10-03
  • 1970-01-01
  • 2015-03-10
  • 2011-08-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多