Обертывание длинного текста в CSS [дубликат]

Вы уверены, что у Вас есть идентификатор процесса каждого экземпляра? Мой опыт с ООО состоял в том, что попытка выполнить второй экземпляр ООО просто разговаривает с первой инстанцией ООО и говорит что открыть дополнительный файл.

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

20
задан Alec Smart 24 September 2009 в 10:31
поделиться

6 ответов

Я использую комбинацию

word-wrap: break-word;
overflow: hidden;

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

46
ответ дан 29 November 2019 в 22:56
поделиться

В дополнение к ответу Дурота вы можно использовать следующий код PHP для вставки застенчивых дефисов

$longest_length = 15;

$string_with_long_word = 'short lonngerrrrr lonnnnnnnggeeeeeeeeeeeeeeeeeessssssssssssssssstttttttttttttt and another looooooooooooonnnnnnnnngwwooooooooororoooorrrrrd';
$string = preg_replace_callback("/[a-z0-9]{{$longest_length},}/", 'putShyHyphen', $string_with_long_word);

function putShyHyphen($matches) {
 $string = $matches[0];
 $newstring = '';
 for ($i=0; $i<strlen($string); $i++) {
  $newstring .= $string[$i] . '&shy;';
 }

 return $newstring;
}
echo $string_with_long_word . '<hr />';
echo $string;
2
ответ дан 29 November 2019 в 22:56
поделиться

simple css. Try this: Put your text in < pre>...< /pre>

css rule

pre {
   overflow-x: auto; /* Use horizontal scroller if needed; for Firefox 2, not needed in Firefox 3 */
   white-space: pre-wrap; /* css-3 */
   white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
   white-space: -pre-wrap; /* Opera 4-6 */
   white-space: -o-pre-wrap; /* Opera 7 */
   /* width: 99%; */
   word-wrap: break-word; /* Internet Explorer 5.5+ */
}
2
ответ дан 29 November 2019 в 22:56
поделиться

Unfortunately, unless you're happy with supporting only specific browsers (IE7/Win, Safari, Firefox 3.5), there's no pure CSS solution to your problem.

word-wrap: break-word; works, but only in IE.

If you're able to alter the text, either server-side (PHP, ASP) or possibly client-side (Javascript), you could write a small function that inserts 'shy hyphens' (­) into your text. That way, text can be broken up at every instance of the hyphen, and shy hyphens will not be displayed if the word is not broken up.

Edit, an example:

bla&shy;bla&shy;bla&shy;bla&shy;bla&shy;bla&shy;bla&shy;bla&shy;bla&shy; (etc)

will display as follows in your browser:

blablabla-
blablabla-
blabla
1
ответ дан 29 November 2019 в 22:56
поделиться

Вы должны прибегнуть к JavaScript и использовать такую ​​функцию:

<script language="javascript">
function wrap() {
    var data = document.getElementsByTagName('yourtaghere'); 
    var  desiredLength = 40 ;
    var delimiter = "<br />";
    for( var i=0; i < data.length; ++i ) {
        cellLength=data[i].innerHTML.length
        if( desiredLength < cellLength ) {
            var counter=0;
            var output="";
            while( counter < cellLength ) {
                output += data[i].innerHTML.substr(counter,desiredLength) + delimiter;
                counter+= desiredLength;
            }
            data[i].innerHTML=output;
        }
    }
}
window.onload=wrap;
</script>

Или вы можете использовать переносчик переносов

1
ответ дан 29 November 2019 в 22:56
поделиться

Новый ответ, поскольку вы изменили свой вопрос:

Это очень упрощенное PHP-решение:

<?php
$string = "AnExtremelyLongStringWithoutWhitespacesOrBreakpointsOfAnyKindThatWillCompletelyAndUtterlyRuinYourWebsiteDesign";
for($i=0; $i<strlen($string); $i++) {
  $newString .= $string[$i] . '&shy;';
}
echo $newString;

То же самое может быть достигнуто на любом языке, конечно.

1
ответ дан 29 November 2019 в 22:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: