我正在为我的表使用这个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;">
第一个表工作正常,第二个表没有
答案 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 */
}