ширина колонки таблицы по количеству колонок
Здравствуйте, подскажите пожалуйста как задать свойство для таблицы чтобы ширина колонок расчитывалась как - ШИРИНА ТАБЛИЦЫ / КОЛИЧЕСТВО КОЛОНОК.
Т. е. выставлялась вне зависимости от длины содержимого? Спасибо. |
Без примера не понятна суть задачи. Задайте в 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, время: 23:01. |