IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Как запретить автоматическое растягивание таблицы при длинных словах? (HTML) (https://www.imho.ws/showthread.php?t=90413)

googler 04.08.2005 13:31

Как запретить автоматическое растягивание таблицы при длинных словах? (HTML)
 
Вопрос, наверное, ламерский. Но упрощенно задача такова.
Есть такая таблица:
Код:

<TABLE Width=300 BORDER=1>
  <TR>
    <TD WIDTH=150>Слово</TD>
    <TD WIDTH=150>СловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСловоСлово</TD>
  </TR>
</TABLE>

Если бы во второй ячейке слова были разделены пробелами, то ничего не поползло бы. А вот если там - длинное слово, то 2-ая ячейка автоматическик растягивается - сначала за счет 1-ой ячейки, а потом за счет увеличения ширины таблицы. Возможно ли как-то запретить это авто-растягивание?

Это нужно для программы, автоматически создающей HTML-документы с текстами в таблице.

Заранее спасибо.

RaZEr 04.08.2005 13:35

Для программы проще и разумней прописать автоперенос. А вообще есть CSS-свойство "overflow". Правда в талицах оно работает не всегда.

googler 04.08.2005 14:32

А что Вы имеете в виду под автопереносом?

RaZEr 04.08.2005 14:37

Разделение больших слов на более мелкие посредством символа "-".

Madness 04.08.2005 14:40

Или как на форуме сделано - принудительное вставление пробелов (см. пример в своем посте).

EvroStandart 07.08.2005 14:46

А ещё можно в текст запихать в div внутри таблицы. И уже для div прописывать параметры. ;)

RaZEr 07.08.2005 14:47

Глюки overflow это не лечит.

BorLase 07.08.2005 17:22

возможно, тебе поможет что-то типа этого:

Код:

<table style="width: 300px;" border=1>
<tr>
        <td style="width: 150px;">1</td>
        <td style="width: 150px;">
                <div style="margin: 0; padding: 20px; overflow: auto; width: 150px;">
                        222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
                </div>
        </td>
</tr>
</table>

набросал на скорую руку - отполировать уже сам отполируешь.

Вариант с сохранением ширины и в несколько строк - ИМХО, только программно.

RaZEr 07.08.2005 17:37

Указывать ширину таблиц в px почти всегда неприемлемо (говоря о содержимом сайта). Нужно использовать процентные величины, при которых как раз и проявляются глюки работы overflow.

BorLase 07.08.2005 17:55

не соглашусь

указать левое поле шириной 300, остальное - динамически - чем плохо?

я согласен, что зашивать ВЕСЬ сайт на фиксированную ширину - это не есть гут, но частично - почему бы и нет?

RaZEr 07.08.2005 18:09

На практике, часто неясно какое поле будет подвержено слишком большим словам. Я вообще не считаю удачной идею с overflow отдельных полей. Нужно либо переносить слова (вставляя пробелы), либо помещать в overflow-блок всю таблицу.

BorLase 07.08.2005 18:28

Ну, INTEGER(5) или VARCHAR(10) вряд ли порвут таблицу ;)

А вообще, в принципе, согласен - бороться в данном случае лучше программно.

Кстати - а не существует ли в природе модуля для корректной расстановки переносов по правилам русского языка?

RaZEr 07.08.2005 23:42

Цитата:

Кстати - а не существует ли в природе модуля для корректной расстановки переносов по правилам русского языка?
Да вообщем есть алгоритмы и для разложения по слогам, и для выделения корня. Но они не слишком надёжны. Особенно в специфических случаях, вроде "бензолдикарбонилдихлорид".

migan 17.08.2005 14:57

на самом деле легче написать скрипт для запрета ввода длинных слов...если надо - помогу

Jlamepok 19.08.2005 13:29

googler см. эту ссылку. Автор, - Дмитрий Кóтеров, права на dklab.ru. или же эту ссылку


Часовой пояс GMT +4, время: 18:49.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.