Чи можу я запобігти переповненню тексту в блоці div?


Відповіді:


163

Якщо ви хочете, щоб текст, що переповнюється, передавав текст автоматично в новому рядку, а не був прихованим або створював смугу прокрутки, використовуйте

word-wrap: break-word

майно.



Користувачеві потрібно перевірити це як відповідь. Це працювало для мене сьогодні! Дякую, друже!
Едуардо А.

о, боже, дякую тобі за це, я буквально зійшов з розуму від деяких проблем, які я міг би вирішити своєю відповіддю !! XD
Свен



18

Ви можете керувати ним за допомогою CSS, є кілька варіантів:

  • приховано -> Весь переповнення тексту буде приховано.
  • видимий -> Нехай текст буде переповнений видимим.
  • прокручування -> поставити смуги прокрутки, якщо текст переповнюється

Сподіваюся, це допомагає.


15

Просто скористайтеся цим:

white-space: pre-wrap;      /* CSS3 */   
white-space: -moz-pre-wrap; /* Firefox */    
white-space: -pre-wrap;     /* Opera <7 */   
white-space: -o-pre-wrap;   /* Opera 7 */    
word-wrap: break-word;      /* IE */

11

є ще одна властивість css:

white-space : normal;

Властивість пробілу контролює, як обробляється текст з елементом, до якого він застосовується.

div {

  /* This is the default, you don't need to
     explicitly declare it unless overriding
     another declaration */
  white-space: normal; 

}

1
Це дійсно корисно в поєднанні з переповненням: приховано;
коппор




1

Якщо ваш div має встановлену висоту в css, це призведе до його переповнення поза div.

Ви можете надати діву мінімальну висоту, якщо вам потрібно, щоб він завжди був мінімальною висотою.

Мінімальна висота не працюватиме в IE6, хоча, якщо у вас є специфічна таблиця стилів IE6, ви можете надати їй звичайну висоту для IE6. Зміна висоти IE6 відповідно до вмісту всередині.


1

Ви можете просто встановити мінімальну ширину в css, наприклад:

.someClass{min-width: 980px;}

Він не зламається, тим не менш, у вас все ще буде смужка прокрутки, з якою ви маєте працювати.


1

Рекомендації, як знайти, яка частина вашого CSS викликає проблему:

1) встановити style="height:auto;"на всі<div> елементи та повторіть спробу.

2) Встановіть style="border: 3px solid red;"усі <div>елементи, щоб побачити, якою широкою площею займає ваш <div>ящик.

3) Заберіть у CSS всі height:#px;властивості css і починайте спочатку.

Так, наприклад:

<div id="I" style="height:auto;border: 3px solid red;">I
    <div id="A" style="height:auto;border: 3px solid purple;">A
        <div id="1A" style="height:auto;border: 3px solid green;">1A
        </div>
        <div id="2A" style="height:auto;border: 3px solid green;">2A
        </div>
    </div>
    <div id="B" style="height:auto;border: 3px solid purple;">B
        <div id="1B" style="height:auto;border: 3px solid green;">1B
        </div>
        <div id="2B" style="height:auto;border: 3px solid green;">2B
        </div>
    </div>
</div>

1
.NonOverflow {
    width: 200px; /* Need the width for this to work */
    overflow: hidden;
}
<div class="NonOverflow">
    Long Text
</div>

у багатомовній тексті, крім іншого, це призводить до того, що деякі символи довгих слів приховані від відображення.
Bhupi

0

!! Швидко кодований торгівлю попереду !! Залежно від оточуючого коду та роздільної здатності екрана це може призвести до різної / небажаної поведінки

Якщо прихований переповнення не виникає, і потрібні правильні переноси, ви можете використовувати м'який HTML-суть дефісу, де ви хочете, щоб слово / текст порушився. Таким чином ви зможете заздалегідь визначити точку зламу вручну.

&shy;

Дефіс з’явиться лише тоді, коли слово потрібно перервати, щоб не переповнювати його навколишній контейнер.

Приклад:

<div class="container">
  foo&shy;bar
</div>

Отримайте результат, якщо контейнер достатньо широкий і текст не переповнить контейнер:

foobar

Результат, якщо контейнер малий і текст фактично переповнює контейнер:

foo-
bar

.container{
  background-color: green;
  max-width: 30px;
}
Example 1 - container to small => text overflows container:

<div class="container">
  foobar
</div>

Example 2 - using soft hyphen => text breaks at predetermined break point:

<div class="container">
  foo&shy;bar
</div>

Example 3 - using soft hyphen => text still overflowing because the text before the soft hyphen is to long:

<div class="container">
  foobar&shy;foo
</div>

Детальна інформація: https://en.wikipedia.org/wiki/Soft_hyphen

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.