【问题标题】:iframe not taking full height of cell in firefoxiframe 没有在 Firefox 中占据整个单元格的高度
【发布时间】:2014-06-14 17:46:42
【问题描述】:

http://onlinehandytools.com/blah.php?board=EDE&level=AL&subject=biology&year=2011

如果您在 Firefox/Opera 中单击任何标记为 QP/MS 的链接,iframe 将不会占据整个高度,而只会占据大约 10% 的高度。不知道为什么会发生这种情况,因为它在 Chrome 中运行良好。

【问题讨论】:

    标签: firefox iframe height cell


    【解决方案1】:

    您只给出了table 那些 iframe 位于 height:100% 中的值 - 但这并不意味着表格内的元素也必须采用该高度。

    将该表格内的tbodytrtd 元素也赋予相同的高度。

    【讨论】:

      【解决方案2】:

      这可能是由于您使用了<doctype>,因为 XHTML strict Doctype 1.0 不支持 iFrame

      一般来说使用iFrames不是一个好习惯,最好使用其他方法,如dhtml和ajax;但是在某些情况下(例如您的情况)需要 iFrame。

      所以,这里有一些解决方案:

      1. 使用限制较少的 DTD,例如过渡: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">,允许使用 iFrame
      2. 使用“棘手”的自定义 DTD,如本文所述:http://madskristensen.net/post/use-iframes-with-xhtml-10-strict,它只是使用来自过渡 DTD 的 iFrame 定义扩展标准严格 DTD
      3. 将 iFrame 转换为对象,如下所述:http://sumitbansal.com/web-designing-tips/w3c-validation-iframe-error-with-xhtml-1-0-strict-doctype/
      4. 使用javascript计算TD的高度,并赋值给iFrame;类似document.getElementById('the-iframe-id').style.height = document.getElementById('the-td-id').offsetHeight + 'px';

      我希望这会有所帮助。

      【讨论】:

      • 我试过 1,3 和 4 他们没有工作 4:当我得到 offsetHeight 时给了我 0 的高度,我尝试了 jquery 的 .height 方法它也没有工作... 3:我将它转换为在 chrome 上工作的对象,但在 firefox 上的结果相同
      • nvm 我做了这个'$("#iframing").css("height",$("body").height()+"px");'它工作得很好。即使我正在调整它的大小,这也很奇怪。无论如何,谢谢:D
      • 哦,只有当正文的高度是窗口的全高时才有效
      • 我查看了您的代码:在您创建 TD 的那一刻,包含它的 div 是 display:none 所以,实际上,TD 的高度为零。然后你调用一个 show() 函数,TD 得到一个 style.display='block' 属性,相应地,它的高度。所以如果你想在TD高度上使用方法#4,请尝试把代码放在那个style.display='block'代码之后
      • 很好,你很聪明。我做到了,但它仍然没有达到完整的高度。当我全屏显示窗口时它有事情要做,因为当我取消全屏时高度很好
      猜你喜欢
      • 1970-01-01
      • 2015-03-09
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      • 2011-04-04
      • 1970-01-01
      相关资源
      最近更新 更多