Jquery .width()在chrome和firefox上给出不同的值

时间:2013-07-17 13:16:57

标签: jquery html css html5

我正在为我的表使用这个JQuery代码。

    $(document).ready(function () {

    var tableBottom = $(window).height() - $('#compare-table').height();

    $(window).scroll(function (event) {
        var y = $(this).scrollTop();
        var tableTop = $('#compare-table').offset().top;

        if (y >= tableTop && y <= tableBottom) {
            $('#compare-table-controller').addClass('fixed');
            $('#compare-table-controller').css('margin-top', '-' + tableTop + 'px');
        } else {
            $('#compare-table-controller').removeClass('fixed');
            $('#compare-table-controller').css('margin-top', '0px');
        }
    });


    var compareTableHeight = $('#compare-table > table').height() + 1;
    var compareTableTotalColumn = $('#compare-table > table').width() / 195;
    $('#compare-table').css('height', compareTableHeight);

    alert($('#compare-table > table').width());
});

由于某种原因,alert()在chrome和firefox上给出了不同的值。我正在使用chrome 28.0.1500.71和firefox 22.0。正确的值应为1170px。

结果,所有6列都显示在firefox上。它应该只显示4并隐藏其他2。

我显示的div的CSS是。

#compare-table-h {
        width: 780px;
        overflow: hidden;
        position:fixed;
        height: 213px;
        z-index: 999;
    }
    #compare-table {
        width: 780px;
        overflow: hidden;
        position:relative;
        margin-top: 213px;
    }

并且div里面的表是

<table id="compare-table-head" class="table font-size-12 compare-table table-striped" style="position:absolute; border-bottom:1px solid #ddd; width: 1170px;">

第一个表工作正常,第二个表没有

1 个答案:

答案 0 :(得分:2)

似乎您的问题是由于分配给表的内联样式与CSS属性之间的混淆引起的。 (http://jsfiddle.net/XV3Vz/19/

内联样式是:

 style="position:absolute; border-bottom:1px solid #ddd; width: 1170px"

父元素的CSS样式是:

#compare-table {
    width: 780px;
    overflow: hidden;
    position:relative;
    margin-top: 213px;
}

更新

在看了一下后,我发现问题在于使用div中的表格,你可以看到it works properly otherwise的方式。

我真的不知道你为什么在包裹position:absolute中使用div,但你的问题可以修复摆脱它并在包装中添加display:table样式元素:

.compare-table-in-div {
    border-bottom:1px solid #ddd;
    width: 1170px !important;
    background: #ccffee;
   /*deleted position absolute */
}
#compare-table {
    width: 780px;
    position:relative;
    background: #ccddff;
    height: 50px;
    display:table;  /*ADDED */
}

活生生的例子:http://jsfiddle.net/XV3Vz/25/