整个文档在 IE11 中滚动,但不是 Chrome
Whole document scrolls in IE11, but not Chrome
我有一个 HTML 页面是从两个不同的框架生成的。由于这些框架,我无法对其进行巨大的更改,但我可以将 html 调整为 jquery。基本上,我有一个有页眉的应用程序,还有一个有页眉(我们称之为副页眉)、内容和页脚的报告应用程序。我正在寻找的行为是文档被定位为占用整个视口,页脚贴在底部,内容 div 根据需要扩展或收缩,并且溢出,这样如果真实数据是对于内容 div 来说太大了,它会滚动。我的解决方案适用于 Chrome,但在 IE 中,除了内容框架(正确)获得滚动条之外,文档本身(错误地)获得滚动条。
感谢您提供的任何帮助。
jsfiddle here。
代码:
<body bottommargin="0" leftmargin="0" topmargin="0" rightmargin="0">
<div style="width:100%;height:125px;background-color:#FFC;"></div>
</body>
<FORM NAME="rdForm" method="POST">
<MainBody>
<DIV id="divOuterContainer" CLASS="NF_display_table_container">
<DIV id="divHeader" CLASS="NF_top">
<SPAN>My SubHeader</SPAN>
</DIV>
<DIV id="divContentContainer">
<DIV id="divContent">
<DIV id="divInteractive" CLASS="NF_body2">
<div style="width:100%;height:1200px;background-color:#FCC;">
</div>
</DIV>
</DIV>
</DIV>
<DIV id="divFooter" CLASS="NF_bottom2">
<SPAN>My Footer
</SPAN>
</DIV>
</DIV>
</MainBody></FORM>
Javascript:
function reflow() {
var wsize = $(window).height();
var headers = $("#divContent").position().top;
var my_footer = $("#divFooter").height();
var new_height = Math.ceil(wsize - (headers + my_footer));
$("#divContent").css('height', new_height);
$("#divInteractive").css('height', new_height);
}
$(document).ready(
function () {
// Run immediately on DOM ready…
reflow();
// And again on page load and resize events
$(window).bind("load resize", reflow);
}
);
和css:
.hide {
display: none;
}
.NF_body2 {
overflow: auto;
}
.NF_top {
background-color:#CFF;
}
.NF_bottom2 {
background-color:#CFF;
}
.NF_container2 {
position: relative;
}
尝试溢出:而不是隐藏在正文标签上
据我所知,您的 CSS 中缺少 -ms-overflow-style 属性。
试试这个:
.NF_body2 {
overflow: auto;
-ms-overflow-style: auto;
}
如果您需要将它添加到其他地方,只需执行相同的操作即可。
如果你想阅读更多关于此事的信息,请查看 this!
我有一个 HTML 页面是从两个不同的框架生成的。由于这些框架,我无法对其进行巨大的更改,但我可以将 html 调整为 jquery。基本上,我有一个有页眉的应用程序,还有一个有页眉(我们称之为副页眉)、内容和页脚的报告应用程序。我正在寻找的行为是文档被定位为占用整个视口,页脚贴在底部,内容 div 根据需要扩展或收缩,并且溢出,这样如果真实数据是对于内容 div 来说太大了,它会滚动。我的解决方案适用于 Chrome,但在 IE 中,除了内容框架(正确)获得滚动条之外,文档本身(错误地)获得滚动条。
感谢您提供的任何帮助。
jsfiddle here。
代码:
<body bottommargin="0" leftmargin="0" topmargin="0" rightmargin="0">
<div style="width:100%;height:125px;background-color:#FFC;"></div>
</body>
<FORM NAME="rdForm" method="POST">
<MainBody>
<DIV id="divOuterContainer" CLASS="NF_display_table_container">
<DIV id="divHeader" CLASS="NF_top">
<SPAN>My SubHeader</SPAN>
</DIV>
<DIV id="divContentContainer">
<DIV id="divContent">
<DIV id="divInteractive" CLASS="NF_body2">
<div style="width:100%;height:1200px;background-color:#FCC;">
</div>
</DIV>
</DIV>
</DIV>
<DIV id="divFooter" CLASS="NF_bottom2">
<SPAN>My Footer
</SPAN>
</DIV>
</DIV>
</MainBody></FORM>
Javascript:
function reflow() {
var wsize = $(window).height();
var headers = $("#divContent").position().top;
var my_footer = $("#divFooter").height();
var new_height = Math.ceil(wsize - (headers + my_footer));
$("#divContent").css('height', new_height);
$("#divInteractive").css('height', new_height);
}
$(document).ready(
function () {
// Run immediately on DOM ready…
reflow();
// And again on page load and resize events
$(window).bind("load resize", reflow);
}
);
和css:
.hide {
display: none;
}
.NF_body2 {
overflow: auto;
}
.NF_top {
background-color:#CFF;
}
.NF_bottom2 {
background-color:#CFF;
}
.NF_container2 {
position: relative;
}
尝试溢出:而不是隐藏在正文标签上
据我所知,您的 CSS 中缺少 -ms-overflow-style 属性。 试试这个:
.NF_body2 {
overflow: auto;
-ms-overflow-style: auto;
}
如果您需要将它添加到其他地方,只需执行相同的操作即可。 如果你想阅读更多关于此事的信息,请查看 this!