Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.07.2011, 05:44
Интересующийся
Отправить личное сообщение для ctocopok Посмотреть профиль Найти все сообщения от ctocopok
 
Регистрация: 02.03.2011
Сообщений: 19

не удается порулить шириной ячеек в таблице
Есть код, который, по моему замыслу, должен выравнивать ширину ячеек последней строки (изначально пустой) до значения 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", от ее остается "хвост" по высоте.

Помогите, пожалуйста, что нужно исправить, чтобы заработало?
Ответить с цитированием
  #2 (permalink)  
Старый 24.07.2011, 18:00
Интересующийся
Отправить личное сообщение для ctocopok Посмотреть профиль Найти все сообщения от ctocopok
 
Регистрация: 02.03.2011
Сообщений: 19

решил, похоже, проблему сам.
добавил в 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);
}


вроде, работает, как надо.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск