Съезжает дизайн сайта в IE при создании длинных в одно слово коментов (букв в 100)

Главные вкладки

Аватар пользователя el-doctor el-doctor 12 апреля 2008 в 3:55

Приветствую!

у меня на моем форуме - http://metalhearts.ru/?q=node/3 при добавлении комментов - например в форуме - резко сползает дизайн в IE, в опере лечится добавлением в #main {overflow:hidden;}.... там как раз такая ситуация изображена....

В IE не лечится никак.... попробовал массу способов!

может кто нибудь что нибудь посоветует???

Комментарии

Аватар пользователя soff soff 12 апреля 2008 в 11:30

попробуйте прописать не для #main, а для
div.forum-comment-right {overflow:hidden;}

p.s. а где Вы слова такие берете? (по 100 букв)

Аватар пользователя PVasili PVasili 13 апреля 2008 в 23:54

А что такого? Ну есть у меня ящичек на http://abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com/ и что тут ...
Тут: http://www.llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch.com правда не дают почту :(. А то на визитке стильно бы выглядело Smile

Аватар пользователя el-doctor el-doctor 12 апреля 2008 в 13:16

спасибо за совет, пробую

УВЫ НЕ РАБОТАЕТ. все съезжает как и съезжало.... добавил туда еще ширину в пикселах, но это совершенно не помогает, эксплорер как будто игнорирует все усилия. В мазиле тоже самое....

дык я не беру, но дураков то , согласись много..... потом я точно знаю что среди будущих юзеров этого сайта будет таких вот, которые будут вводить такое чтоб разлесся дизайн а потом говорить "бугагага"

Аватар пользователя Ветер Ветер 12 апреля 2008 в 23:28

Вот это Да!!! Надеюсь таких М... не много.

Кстати, неплохо было бы добавить в функцию триггеров ограничение длины слова в коментарии, да и не только в коментарии. Чтобы исключить пользовательский терроризм. Много у нас слов длиннее 5 символов с одинаковыми буквами?

Или включить в обработку комментария принудительный

Аватар пользователя p-code p-code 13 апреля 2008 в 18:15

Вообще-то в своих скриптах я всегда слова более 20 символов разрезаю через пробел. В проекте Top.roleplay.ru пока встречается лишь одно слово — многопользовательская. Алгоритм простой (сорри, там 19 символов):
s/([a-zA-Zа-яА-Я_\-]{18,}?[a-zA-Zа-яА-Я_\-])(?!\s)/$1 /gis;

Если выставить 30, то хуже не будет.

//да... давно писалось. Сейчас бы написал проще. Но лень тестировать

Аватар пользователя p-code p-code 13 апреля 2008 в 23:36

В php тоже есть регулярные выражения. Копайте в этом направлении. Шаблон для замен — надо найти последовательность символов длиной 20 и чтобы следующим символом был из того же диапазона. Если такому условию соответсвует, то после найденных 20 символов ставим пробел. Операцию повторяем пока таких последовательностей не останется.

В общем найдо найти "(\S{20})(?!\s)" и заменить на "$1 ". Для тех, кто не знает регекспы:
\S — последовательность непробельных символов (то есть не пробел, не табуляция, не символ переноса строки)
{20} — здесь означает, что надо найти последовательность из 20 символов (перечень символов указан вначале. В примере это "\S")
\s — перечень пробельных символов.
(?!\s) — оператор из расширенных регулярных выражений. Означает, что следующий символ не должен быть пробельным символом — оператор (?! ). Найденное в скобках не запоминается.
$1 — здесь будет найденное в первой скобке. Собственное после найденного вставляем пробел и идем искать дальше.

В php, на сколько я знаю, операторы работающие с регвыражениями типа Перловых имеются.

Аватар пользователя Гость Гость (не проверено) 14 апреля 2008 в 6:47

Поддерживаю p-code целиком и полостью Smile Регулярные выражения вам помогут!
Длинное слово очень любят ставить всякие ломатели сайтов. ИЕ начинает раздвигать дизайн. Поэтому Вам не надо полагаться на то, что там пишет какой-то посетитель. Можно убирать одинаковые повторяющиеся символы, либо ставить ограничение на длину обязательного слова.