|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Текст в таблицах. |
|
Текст в таблицах.
|
редкий гость Сообщения: 1696 |
Профиль | Сайт | Отправить PM | Цитировать Я у себя на страничке собираюсь постить куски кода, т.к. в одном куске обычно в ширину 60-80 символов, то таблицы обычно разъезжаются а вместе с ними и весь остальной текст, мне это не нравится, и хотелось бы знать как сего можно избежать...
|
|
------- Отправлено: 09:35, 10-04-2002 |
Модер Сообщения: 1716
|
Профиль | Сайт | Отправить PM | Цитировать ivank
а чем width="число тута, проценты или 0*" не катит? |
------- Отправлено: 13:18, 10-04-2002 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
редкий гость Сообщения: 1696
|
Профиль | Сайт | Отправить PM | Цитировать Вот примерный шаблон моей страницы:
тут стандартные html-заголовки <table width=100%><tr><td width=20%>менюшка</td> <td width=80%>Тут некий очень интересный текст, в который по детской прихоти возникло желание вставить кусок кода... <pre>а тут длииииииииииииииииииииииииииииииииииииииииииииииинный кусок кода и ещё длиннее.....</pre> </td></tr></table> тут стандартный html футер |
------- Отправлено: 19:45, 10-04-2002 | #3 |
Модер Сообщения: 1716
|
Профиль | Сайт | Отправить PM | Цитировать Если ты хочешь побороть тег PRE - то тут не знаю что делать. Ну то есть, очевидный ответ - его не использовать.
Если же надо просто научить броузер переносить длинные слова - то это можно. Я, например, у себя на сайте (в новой версии, на перле которая) храню имена параметров как NoWebView, а при выводе, если включить это в опциях, оно будет при нехватке места переноситься, причем перенос в 2-х местах возможен (в этом конкретном случае), а если не надо переноса - он появляться и не будет. Разумеется, это все автоматически, без проверки ширины экрана. Я думаю, скрипт сам напишешь, который бы форматировал слово так, чтоб при необходимости он начинало переноситься. А сам HTML посмотри у меня. Или я это все зря, и ты принципиально с PRE борешься? |
------- Отправлено: 20:33, 10-04-2002 | #4 |
Призрачный админ Сообщения: 5254
|
Профиль | Отправить PM | Цитировать ivank
Тег "pre" специально сделан для того, чтобы формат текста оставлять......таблица всегда будет разъезжаться...поверь мне......не юзай этот тег просто |
|
------- Отправлено: 22:39, 10-04-2002 | #5 |
редкий гость Сообщения: 1696
|
Профиль | Сайт | Отправить PM | Цитировать vasketsov
Без <pre> форматирование текста на фиг уезжает, а без него читать сурсы неудобно. BigMac Да мне пофиг, что таблица разъезжается -- лишь быостальной текст в ней не расширялся то же... Пока я сделал автоматичесские переносы, о некузяво это как-то... |
------- Отправлено: 09:48, 11-04-2002 | #6 |
Модер Сообщения: 1716
|
Профиль | Сайт | Отправить PM | Цитировать ivank
>читать сурсы неудобно я так понял, тебе надо 1) моноширинный шрифт 2) чтобы переносы строк оставались 1-е можно и стилем. 2-е тоже можно попробовать стилями поиграться, вот только идентично ли поведение (т.е. форматирование) текста внутри куска с ПРЕ или со стилем- не знаю, по идее ничего получиться не должно. Какое-то странное форматирование. Переносы строк остаются, а остальное - переносится. |
------- Отправлено: 13:05, 11-04-2002 | #7 |
редкий гость Сообщения: 1696
|
Профиль | Сайт | Отправить PM | Цитировать vasketsov
Я вот такой вот скриптик (вернее часть PHP-класса) написал -- строки свыше 60 символов разбивает на части, но всё это с сохранением форматирования. Переносы по возможности делает по словам: class page { //... function _do_code_brs( $str ) { * *// Суть *этого манёвра, что бы спецсимволы, заменённые на их коды * *// (< на < *итп) опять стали односимвольными -- что б прально * *// работал подсчёт символов в строке. * *$tmp_chars = array( "\x05", "\x06", "\x07", *"\x08" *); * *$codes * * = array( '<', '>', '&', '"'); * *for( $i = 0; $i < count( $codes ); ++$i ) * * * *$str = str_replace( $codes[$i], $tmp_chars[$i], $str ); * *while( preg_match( "/[^\n\x01]{61,}/", $str ) ) * * * *$str = preg_replace( "/([^\n\x01]{61,})/e", * * * * * * * * * * * * * * '$this->_do_code_brs_(\'\\1\')', $str ); * *for( $i = 0; $i < count( $codes ); ++$i ) * * * *$str = str_replace( $tmp_chars[$i], $codes[$i], $str ); * *return str_replace( "\x01", '<img src="/trash/br.gif">', $str ); } function _do_code_brs_( $str ) { * *preg_match( '/^(.{0,60})(\S*)(.*)$/', $str, $f ); * *preg_match( '/ */', $str, $offset ); * *if( $f[2] != '' ) * *{ * * * *preg_match( '/\S*$/', $f[1], $last_word ); * * * *if( $last_word[0] != $f[1] ) * * * * * *return * * * * * *substr( $f[1], 0, strlen( $f[1] ) - strlen( $last_word[0] ) ) * * * * * *. "\x01\n" . $offset[0] . $last_word[0] . $f[2] . $f[3]; * *} * *preg_match( '/ */', $str, $offset ); * *return $f[1]."\x01\n".$offset[0].$f[2].$f[3]; * *echo '<pre>'; print_r( $f ); * *return substr( $str, 0, 60 ); } // ... }; Но, вообще, я решил применять решение проще -- сделать шрифт для кода меньше, и весь код, который я собираюсь публиковать на страницы сразу (вручную) форматировать по ширине на 60 символов -- всё прекрасно смотрится даже в 640x480. |
------- Отправлено: 13:46, 11-04-2002 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
не копируется текст | spilberg | Microsoft Windows NT/2000/2003 | 5 | 17-07-2009 13:38 | |
Рукописный текст | andrei.ru | Цифровое изображение | 1 | 11-06-2009 20:36 | |
копировать текст! | Rustem | Хочу все знать | 3 | 17-02-2009 16:57 | |
Текст и архиватор | Yurij | Microsoft Windows 2000/XP | 3 | 09-09-2006 19:57 | |
xml и русский текст | L71 | Вебмастеру | 13 | 08-11-2005 10:22 |
|