Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: CSS: Оптимальный способ задания ширины столбцов таблицы...
 
 автор: Cyrax   (22.11.2007 в 20:47)   письмо автору
 
 

Как можно максимально просто задать ширину столбцов таблицы. А именно: для 1-го, 2-го и 4-го, ширина 3-го столбца должна регулироваться браузером в соответствии с содержимым.
Желательно сделать это с помощью CSS и без определения классов для th и td...

   
 
 автор: Cyrax   (23.11.2007 в 22:32)   письмо автору
 
   для: Cyrax   (22.11.2007 в 20:47)
 

Конкретизирую вопрос: как минимизировать ширину стодбца/ячейки по содержимому. Содержимое - текст, заключённый в <nobr>, чтобы располагался в одну строку. Необходимо ширину столбца/ячейки жёстко установить равной длине текста. Как это сделать ?

   
 
 автор: Blizard   (23.11.2007 в 22:36)   письмо автору
 
   для: Cyrax   (23.11.2007 в 22:32)
 

я не уверен, но может быть стоит попробовать во всех ячейках таблицы кроме третьей написать так <td width="0"> тогда думаю в вашем случае ячейка растянется ровно под длину её содержимого, а если такового не будет то лдина будер равна нулю

   
 
 автор: Cyrax   (24.11.2007 в 20:43)   письмо автору
 
   для: Blizard   (23.11.2007 в 22:36)
 

При разметке страницы auto <td width="0"> (задаю в CSS) никак не влияет на минимизацию ширины столбца. В зависимости от содержимого бывает притык, бывает чуть шире, чем притык.
В случае fixed-разметки ширина действительно устанавливается в 0 (что очевидно)...

Пока вижу выход в установке конкретной ширины столбцов скриптами. Единственная задача - определить длину строки в пикселах. Как это можно сделать ?

   
 
 автор: Cyrax   (25.11.2007 в 15:50)   письмо автору
 
   для: Cyrax   (24.11.2007 в 20:43)
 

style.width - это рекомендуемая ширина. Посему в случае, когда один из столбцов имеет ширину 100% или ширина таблицы равна 100%, изменение этого свойства никак не влияет на реальную ширину столбца.
Реальную ширину столбца/ячейки можно посмотреть через свойство offsetWidth (без style).
Т.е., чтобы изменить программно ширину ячейки/столбца, нужно очистить или изменить на конкретное значение ширину столбцов со значением 100%. только после этого изменение свойства style.width начнут себя проявлять.
Но здесь возникает офигенная проблема с доступом к этому '100%', чтобы его изменить или очистить. Оказывается, свойства style.width не устанавливаются, когда мы в css указываем ширину ячеек.
Т.е., например, в css для всех ячеек проставляю ширину, скажем, 35px (100%-ных столбцов/ячеек нет). Затем в обработчике onLoad (<body onload = "init()">) вывожу alert'ом свойства style.width всех столбцов (конкретно для тегов th). Все свойства пустые. Причём дальнейшая установка этих свойств в другие конкретные значения действительно изменяет ширину столбцов.
В первую очередь надо бы как-нибудь получить значение 100% (если это возможно в javascript, уже возникают сомнения)...

з.ы. наряду с style.width и offsetWidth есть ещё свойство clientWidth. Работает как offsetWidth...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования