Я разработал решение javascript для вышеуказанной проблемы
который работает только в Firefox 7+, так как я тестировал только в FF
Я пришел к этой теме и нашел решение, на которое указал Майкл Копер
В этом решении три важные вещи сделаны
1) исправить ширину столбца
2) отображение thead> tr установлено на блок
3) дисплей tbody настроен на блокировку
как уже упоминали другие, есть проблема с установкой ширины, я тоже нахожусь в этом положении;
даже я не могу фиксировать ширину статически
поэтому я подумал, что я исправлю ширину динамически (после того, как таблица будет отображена в браузере)
и это сделало трюк:)
следующее решение в javascript, которое работает только в FF
(я тестировал только в FF, у меня нет доступа к другим браузерам)
function test1(){
var tbodys = document.getElementsByTagName("TBODY");
for(var i=0;i<tbodys.length;i++){
do_tbodyscroll(tbodys[i]);
}
}
function do_tbodyscroll(_tbody){
// get the table node
var table = _tbody.parentNode;
// first row of tbody
var _fr = _tbody.getElementsByTagName("TR")[0];
// first row cells ..
var _frcells = _fr.cells;
// Width array , width of each element is stored in this array
var widtharray = new Array(_frcells.length);
for(var i=0;i<_frcells.length;i++){
widtharray[i] = _frcells[i].scrollWidth;
}
// Apply width to first row
for(var i=0;i<_frcells.length;i++){
_frcells[i].width = widtharray[i];
}
// Get the Last row in Thead ...
// COLGROUPS USING COLSPAN NOT YET SUPPORTED
var thead = table.getElementsByTagName("THEAD")[0];
var _rows = thead.getElementsByTagName("TR");
var tableheader = _rows[_rows.length - 1];
var headercells = tableheader.cells;
// Apply width to header ..
for(var i=0;i<headercells.length;i++){
headercells[i].width = widtharray[i];
}
// ADD 16 Pixel of scroll bar to last column ..
headercells[headercells.length -1 ].width = widtharray[headercells.length -1] + 16;
tableheader.style.display = "block";
_tbody.style.display = "block";
}
Это решение определяет ширину столбца в браузере.
и снова установите ту же ширину для столбцов (заголовок и первая строка tbody)
после того, как ширина установлена; thead> tr и tbody дисплей блокируется
Надеюсь, что это решение полезно для всех вас ..
если вы можете распространить его на другие браузеры, ответьте на это сообщение