Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   не удается порулить шириной ячеек в таблице (https://javascript.ru/forum/events/19038-ne-udaetsya-porulit-shirinojj-yacheek-v-tablice.html)

ctocopok 24.07.2011 05:44

не удается порулить шириной ячеек в таблице
 
Есть код, который, по моему замыслу, должен выравнивать ширину ячеек последней строки (изначально пустой) до значения 44рх (для примера). Попутно, широкие ячейки третьей строки должны "растянуть" верхние заголовочные ячейки. Однако ж, не камееный цветок не выходит.
Очевидно, ошибка в реализации замысла, но какая - непонятно.

<script>
function makesize()
{
var th = document.getElementById("wrow");
var tb = document.getElementById("nmrow");
for (var i=0;i<th.cells.length;i++)
	{
	cell = th.cells[i];
	cell.innerHTML="o";
	cell.style.width="44px";
	cell.style.minwidth="44px";
	cell.style.maxwidth="44px";
	cell.width=44;

	cell.style.height=1;
	cell.style.maxheight="1px";

	}
//	alert(th.innerHTML);
//	th.style.display="";
//	alert("");
//	th.style.visibility="hidden";
//	th.style.display="none";
}
function init()
{makesize();
}
var root = window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null;
if (root){
    if (root.addEventListener) root.addEventListener("load", init, false);
    else if (root.attachEvent) root.attachEvent("onload", init);
}
</script>
<table style="text-align:right" cellpadding="1" border="1" id="htable">
<tbody>
<tr bgcolor="white" align="center">
<td rowspan=2>Name</td>
<td colspan=3 align="center" >XP</td><td rowspan=2>Battles</td><td colspan="2">Wins</td><td rowspan=2>Losses</td><td colspan="2">survival</td>
<td rowspan="2">Battle lifetime</td><td colspan="6">frags</td><td colspan="2">dmg dealt</td><td rowspan="2">dmg rcvd</td><td rowspan="2">dmg<br/>ratio</td><td rowspan="2">shots</td><td rowspan="2">hits</td><td rowspan="2">%%</td>
<td rowspan="2">spotted</td><td colspan="2">base pts</td><td rowspan="2">longie text</td><td rowspan="2">longie text</td>
</tr>
<tr>
<td>total</td><td>avg</td><td>Max</td><td>#</td><td>%</td><td>#</td><td>%</td>
<td>#</td><td>avg</td><td>max</td><td>lvl 8+</td><td>beasts</td><td>diff types</td>
<td>amt</td><td>avg</td>
<td>capture</td><td>defend</td>
</tr>
<tr style="" id="wrow"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
</tbody>
</table>


Извраты с innerHTML - это чтобы хоть что-то над ячейками колдовалось. Иначе вообще не отрабатывает :)

В идеале замысла - размерная строка таблицы должна быть скрыта, но даже делая ей visibility="hidden", от ее остается "хвост" по высоте.

Помогите, пожалуйста, что нужно исправить, чтобы заработало?

ctocopok 24.07.2011 18:00

решил, похоже, проблему сам.
добавил в makesize()
примерно такое:
for (var i=0;i<th.cells.length;i++)
{
im=document.createElement('img');
im.src='1px.gif'; //прозрачный гиф 1х1 пикс
im.style.width=nuzhnaya_shirina_dopustim_vychislyaemaya;
im.style.height='1px';
th.cells[i].appendChild(im);
}


вроде, работает, как надо.


Часовой пояс GMT +3, время: 03:02.