ширина колонки таблицы по количеству колонок
Здравствуйте, подскажите пожалуйста как задать свойство для таблицы чтобы ширина колонок расчитывалась как - ШИРИНА ТАБЛИЦЫ / КОЛИЧЕСТВО КОЛОНОК.
Т. е. выставлялась вне зависимости от длины содержимого? Спасибо. |
Без примера не понятна суть задачи. Задайте в css ширину. Или количество колонок и ширина таблицы могут меняться? Тогда как-то так можно:
<style>
table td {
border: 1px solid gray;
}
</style>
<table style="width: 300px">
<tr><td> </td><td> </td><td> </td><td> </td></tr>
<tr><td> </td><td> </td><td> </td><td> </td></tr>
</table>
<script>
var table = document.getElementsByTagName('table')[0];
var widthTable = parseFloat(table.style.width);
var cols = table.getElementsByTagName('tr')[0].getElementsByTagName('td');
var numCols = cols.length;
for (var i = 0; i < numCols; i++) {
cols[i].style.width = widthTable / numCols;
}
</script>
|
Проблемы верстки решают скриптами только мудаки!!! Ну блин, сколько можно-то, а?
Автор, пробуй так.
<!DOCTYPE html>
<html>
<style>
table{
width: 400px;
table-layout: fixed;
}
</style>
<table border="1">
<tr>
<td>abc</td>
<td>abc</td>
<td>ab</td>
<td>sssssssssssssssssssssssssssss s fdfsdf</td>
</tr>
</table>
|
danik.js, Спасибо. Сработало
|
table-layout: fixed;
По моему оно вообще не сеет. Единственное в ИЕ8 я увидел фиксед в одной своей таблицы в одну из последних попыток проверить как оно в ИЕ. ФФ и Хром тянут куда попало по контенту пилюя на всё. Даже если профтыкать оверфлоу - все равно. Может только для таблицы содержание которой не противоречит атрибуту. Ну вот эти ааа, ббб, ссс и тпп. Суть фикседа в инкрементном рендере таблицы. Типа поскольку ширина колонок заранее известна рендерить ее можно по мере поступления данных. Иначе надо закачать все, рассчитать ширину всех и тогда уж. Ну вот, w3c много интересного пишет про таблицы и надо сказать не все что там с древности зафиксировано реализовано или еще работает в браузерах. Например col style="display:none" = х нанэ. ЧТо-то еще пытался сделать через <colgroup><col>... и обломился и забыл уже что. Но пропорциональное определение ширины вроде пашет. http://www.w3.org/TR/html401/struct/...tml#h-11.2.4.2 Устроено так. Задаете ширину 1 колонки явным образом, скажем 30 пикселов (через col конечно), а другие колы забиваете пропорциями, синтаксис х*. Например первая 20 пикс, вторая 2*, затем 4*, 3*, 1*. Что в принципе означает 2*20, 4*20 и тп, и дает 20, 40, 80, 60, 20. То есть задав первой 50 пикс, а всем остальнам 1* вы получите фиксед который регулируется через 1 множимое. |
Вот так примерно, с сайта переделал.
<TABLE> <COLGROUP> <COL width="30"> <COL width="1*"> <COL width="1*"> <COL width="1*"> <COL width="1*"> <COL width="1*"> <COL width="1*"> <THEAD> <TR><TD> ... ...rows... </TABLE> COL точно помню не надо закрывать, COLGROUP опционально. Если он нормально закрывается - можно не, но поскольку он закрывается нормально всегда, то значит не надо. Кстати, tr, th, td не требуется закрывать в нормальной верстке. Они автозакрывающиеся. tr закрывает tr, td - следующий td. Но если вы начнете брать текст с td в js как есть, то с незакрытого вам почему-то \n прилетит. |
kostyanet, что-то у меня не получаются одинаковые колонки из твоего кода. Можешь демку состряпать? Фишка конечно интересная, хоть и устаревшая.
Цитата:
Цитата:
|
Значит и это не работает. Есть теория что и фиксед не работает по той же причине.
Мне надо было скрывать колонки в таблице, которые написано скрывать. Ну вот, пришлось через бесконечные td class="hidden" сделать. col'ы вообще похоже теперь не обслуживаются. |
Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 12:24. |