$(窗口).height()在IE和FF的问题($(window).height() issues

2019-06-28 00:40发布

我写了一个脚本,使动态大小div我的网页内(#table)。 我也有一个菜单(#menu) nav内建立所述最小高度。 在Chrome和Safari这一切工作正常,但在IE / FF没有这么多。 在这两个我有同样的问题:如果我加载页面全屏,然后用我的最小化按钮将它最小化,它拿错$(window).height() 如果我重装它最小化,它的工作好了,我甚至可以调整使得DIV调整确定。 我把一些图片要清楚我在说什么。

随着FF我还有一个问题。 它总是在div底部的空间,当窗口大小比菜单大。 这就像我在申请其他浏览器不适合用于Firefox的价值。 这个问题只与高度。 动态宽度工程确定。

我的浏览器版本如下:我认为他们是最新的。

  • 铬米21.0.1180.89
  • Safari浏览器5.1.7
  • Internet Explorer 9的
  • 火狐14.0.1

这里是我的JavaScript / jQuery代码:

<!-- Menu resize -->
<script type='text/javascript'>
$(function(){
    $('#menu').css({'height':(($(window).height())-350)+'px'});
    $('#table').css({'height':(($(window).height())-225)+'px'});
    $('#table').css({'min-height':(($('nav').height())-15)+'px'});
    $('#table').css({'width':(($(window).width())-135)+'px'});

    $(window).resize(function(){
          $('#menu').css({'height':(($(window).height())-350)+'px'});
          $('#table').css({'height':(($(window).height())-225)+'px'});
          $('#table').css({'width':(($(window).width())-151)+'px'});
    });
});
</script>

页面样式的一部分:

/* NAV */

#line{
    width:1px;
    position:absolute;
    left:147px;
    top:123px;
    bottom:0px;
    background-color:#b3b3b3;
}

nav{
    width:147px;
    min-height: 100%;
    float:left;
}

nav ul{
    list-style:none;
    padding:0px;
    margin:0px;
}

nav li{
    display:block;
    width:147px;
    height:24px;
    line-height:24px;
    border-bottom: 1px solid #b3b3b3;
    text-indent:30px;

    -moz-box-shadow:    inset 1px 1px 1px #ffffff;
    -webkit-box-shadow: inset 1px 1px 1px #ffffff;
    box-shadow:         inset 1px 1px 1px #ffffff;
}

nav li a{
    color:#808080;
    font-size:14px;
    text-decoration:none;
    display:block;
}

nav li:hover{
    background-color:#cccccc;
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
    box-shadow: none;
}

nav li .active{
    background-color:#fdad06;
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
    box-shadow: none;
}

nav li a.active{
    color:#7e5303;
}

nav li:first-child{
    border-top: 1px solid #b3b3b3;
}

nav #group{
    width:148px;
    height:49px;
    font-size:14px;
    font-weight:bold;
    line-height:49px;
    text-indent:22px;
}

/* SECTION */

#menu_and_content{
    width:auto;
    display:block;
    background-image:url(images/background.jpg);
    box-shadow:inset 0 5px 5px rgba(0,0,0,.2) 
}

#menu_and_content #menu{
    width:148px;
    vertical-align:top;
    border-right-style:solid;
    border-right-width:1px;
    border-right-color:#b3b3b3;
    padding: 0px 0px 20px 0px;
}

#menu_and_content #content{
    width:100%;
    vertical-align:top;
}

#table{
    overflow-x:scroll;
    overflow-y:scroll;
    width:500px;
}

#table table{
    width:100%;
    font-size:11px;
    padding:25px 25px 25px 25px;
    text-align:left;
    }

#table table thead th{
    font-size:12px;
    font-weight:bold;
    color:#969696;
    cursor:pointer;
}

#content table td, th{
    border-bottom:solid;
    border-bottom-color:#afafaf;
    border-bottom-width:1px;
    white-space: nowrap;
    padding:0px 5px 0px 10px;
    line-height:24px;
}

#content table td:first-of-type, th:first-of-type {
    padding-left:4px;   
}

#content table tr:hover:not(#captions){
    background-color:rgba(255,255,255,0.4);
    color:#3e3a34;
    cursor:pointer;
}

#content table input[type='checkbox']{
    margin-top:2px;
    border-color:#949494;
}

#login_container{display:block; height:260px;}

这里是图像:

Answer 1:

我有同样的问题与Firefox,和我解决它添加到我的所有HTML文件。 该解决方案指出在这个堆栈溢出问题:

为什么火狐返回0作为$(窗口).height()的值

jQuery1.8.1版本说明说

不要使用怪癖模式! jQuery的从未支持怪癖模式,我们不执行任何怪癖测试。 这可能会影响像$值(“窗口”)。高度(),和jQuery的1.8怪癖模式结果做以支持一些现代的浏览器功能的变化。 大多数的问题情况下,我们已经看到是从想在标准模式,但有自己的标签之前的无效文档类型或多余的标记开发。 如果有疑问,使用简单且短。



Answer 2:

尝试innerHeight()outerHeight()而不是height()

填充/边界/利润率可以不包括



Answer 3:

请看看这个博客。 他在浏览器内进行的有关屏幕尺寸非常详细的研究

http://tripleodeon.com/2011/12/first-understand-your-screen/



文章来源: $(window).height() issues in IE and FF