Jump to content
  • 0

Как сделать перенос ооооочень длинной строки


AlexKon
 Share

Question

Как сделать перенос ооооочень длинной строки не имеющей пробелов

к примеру такой

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя

только еще в N раз длинее?

может кто сталкивался с побным

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Все решено, всем спс.

Кому интересно вот одино из решений, мне оно подошло, может еще кому подойдет

p {
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap; /* Mozilla, начиная с 1999 года */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}

Link to comment
Share on other sites

  • 0
Все решено, всем спс.

Кому интересно вот одино из решений, мне оно подошло, может еще кому подойдет

p {
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap; /* Mozilla, начиная с 1999 года */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}

Спасибо!Как раз искала решение))

Мне тоже подошло!

Link to comment
Share on other sites

  • 0

Нифига это в опере на работает в версиях с 5 по 10 включительно. white-space — вообще левый, он никак на переносы не внутри слова не влияет, во всех браузерах переносит word-wrap, а его нет а Опере. Отправляюсь на поиски замены. Очень уж не хочется делать невидимый пробел внутри слов средствами php.

Link to comment
Share on other sites

  • 0

Мои многочасовые изыскания в инете ни к чему не привели. Заставить оперу переносить длинные строчки с помошью css решительно не возможно. Дело усугубляется тем, что остальные браузеры ставят перенос после дефиса и точки, а опера, если нет пробелов, не ставит. Отписал бегрепорт разработчикам, потому как такой кошмар, конечно, терпеть не возможно. Скорее всего в 10 будет реализация word-wrap.

Теперь об не очень удобных способах обхода этой проблемы.

1) Если длинное действительно слово, а не что-то еще, то логично вставлять на php мягкие переносы ­. Способ самый очевидный и не подходящий мне по причине того, что у меня не слова, а марки техники, в которых лишний дефис, образующийся при переносе, может вызвать разночтения.

2) Вставляем везде, где по нашему мнению должен быть перенос ,конструкцию вида <i class="shy"> </i> и описываем так:

i.shy {

font-size: 0;

visibility: hidden;

}

font-size: 0; нужен для того, чтобы пробел был маленьким и невидимым (в браузерах на webkit он все равно видим),

а visibility: hidden; нужно чтобы пробел не копировался вместе с текстом (в браузерах на gecko он все равно копируется).

Из-за примечания в скобках применять этот метод нужно проверяя user agent на сервере и отдавать его только Опере.

3) Наиболее простой способ с точки зрения верстальщика. Это когда пользователь сам поставит окну View -> Fit to width. Тогда все тексты на странице начнут вести так, как будто для них применяется word-wrap: break-word, что нам и нужно. Верстальщику остается только проверить не разваливается ли чего в этом режиме и как-то намекнуть пользователю, что сайт будет лучше выглядеть, если в него переключиться.

Я выбрал для себя 3-й способ. Всеже парсить всюду текст на стороне сервера не правильно как-то, потому что виноват браузер.

Link to comment
Share on other sites

  • 0
Мои многочасовые изыскания в инете ни к чему не привели. Заставить оперу переносить длинные строчки с помошью css решительно не возможно. Дело усугубляется тем, что остальные браузеры ставят перенос после дефиса и точки, а опера, если нет пробелов, не ставит. Отписал бегрепорт разработчикам, потому как такой кошмар, конечно, терпеть не возможно. Скорее всего в 10 будет реализация word-wrap.

Теперь об не очень удобных способах обхода этой проблемы.

1) Если длинное действительно слово, а не что-то еще, то логично вставлять на php мягкие переносы ­. Способ самый очевидный и не подходящий мне по причине того, что у меня не слова, а марки техники, в которых лишний дефис, образующийся при переносе, может вызвать разночтения.

2) Вставляем везде, где по нашему мнению должен быть перенос ,конструкцию вида <i class="shy"> </i> и описываем так:

i.shy {

font-size: 0;

visibility: hidden;

}

font-size: 0; нужен для того, чтобы пробел был маленьким и невидимым (в браузерах на webkit он все равно видим),

а visibility: hidden; нужно чтобы пробел не копировался вместе с текстом (в браузерах на gecko он все равно копируется).

Из-за примечания в скобках применять этот метод нужно проверяя user agent на сервере и отдавать его только Опере.

3) Наиболее простой способ с точки зрения верстальщика. Это когда пользователь сам поставит окну View -> Fit to width. Тогда все тексты на странице начнут вести так, как будто для них применяется word-wrap: break-word, что нам и нужно. Верстальщику остается только проверить не разваливается ли чего в этом режиме и как-то намекнуть пользователю, что сайт будет лучше выглядеть, если в него переключиться.

Я выбрал для себя 3-й способ. Всеже парсить всюду текст на стороне сервера не правильно как-то, потому что виноват браузер.

да действительно какой то сплошной геморой с этими браузерами

тот пример который я нашел тоже как вы и сказали себе полностью не опровадал, сейчас это не так приорететно но поиск адекватного решения ведется,

если что будет вминяемое напишу

Link to comment
Share on other sites

  • 0
Как сделать перенос ооооочень длинной строки не имеющей пробелов

к примеру такой

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя

яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя

только еще в N раз длинее?

может кто сталкивался с побным

Тег WBR: http://htmlbook.ru/html/wbr.html

Эмуляция тега WBR:

Некоторые, наверное, знают про тег WBR, когда-то давно использовавшийся для того, чтобы переносить слишком длинные слова, если возникает такая необходимость. Основные проблемы этого тега две:

* он не работает в Опере

* он не валидный

К счастью, эмулировать его достаточно легко. Кроме того, при помощи этой эмуляции можно починить поведение тега в Опере.

Вот примерное решение:

HTML

   lalala<i class="wbr"></i>lalala

CSS

 WBR, .wbr { display:-moz-inline-box; display:inline-block; }

Единственный момент, который остаётся за рамками эмуляции: в IE WBR может создавать разрыв строки при white-space:nowrap.

© http://kizu.ru/webdev/wbr/

Edited by Alice
Link to comment
Share on other sites

  • 0
Нифига это в опере на работает в версиях с 5 по 10 включительно. white-space — вообще левый, он никак на переносы не внутри слова не влияет, во всех браузерах переносит word-wrap, а его нет а Опере. Отправляюсь на поиски замены. Очень уж не хочется делать невидимый пробел внутри слов средствами php.

Сомневаюсь... Присвой стиль тегу, которому он нужен, а не всему документу, должно работать. Тема старая, то интеренсо. решилась ли проблема.... Если нет, будет интересно глянуть, я бы сказал НЕ ВЕРЮ))). Должно работать!

white-space - разделение несуществующего разделения строки... Кажды браузер интерпретирует по свойму, ответ как использовать выше.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy