HTML + CSS: как заставить содержимое div оставаться в одной строке?


259

У меня есть длинный текст внутри divс определеннымwidth :

HTML:

<div>Stack Overflow is the BEST !!!</div>

CSS:

div {
    border: 1px solid black;
    width: 70px;
}

Как я мог заставить строку оставаться в одной строке (то есть быть обрезанным в середине "Переполнения")?

Я пытался использовать overflow: hidden, но это не помогло.


12
white-space: nowrapпоместите это в свой тег стиля.
Моши

Ответы:


524

Попробуй это:

div {
    border: 1px solid black;
    width: 70px;
    overflow: hidden;
    white-space: nowrap;
}



14

Ваш HTML код: <div>Stack Overflow is the BEST !!!</div>

CSS:

div {
    width: 100px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

Теперь результат должен быть:

Стек Сверх ...

12

Все прыгали на этом !!! Я тоже сделал скрипку

http://jsfiddle.net/audetwebdesign/kh4aR/

RobAgar получает точку для указания в white-space:nowrapпервую очередь.

Здесь есть пара вещей, которые вам нужны, overflow: hiddenесли вы не хотите, чтобы дополнительные символы высовывались в ваш макет.

Кроме того, как уже упоминалось, вы могли бы использовать white-space: pre(см. EnderMB), помня, что preне будет разрушать пробелы, тогда как white-space: nowrapбудет.


4

Дайте это попробовать. Он использует, preа не так, nowrapкак я предполагаю, вы захотите, чтобы это <pre>работало аналогично, но любой из них будет работать просто отлично:

div {
    border: 1px solid black;
    max-width: 70px;
    white-space:pre;
}

http://jsfiddle.net/NXchy/11/


4

Я прыгнул сюда в поисках того же самого, но никто не работал для меня.

Есть случаи, когда независимо от того, что вы делаете, и в зависимости от системы (Oracle Designer: Oracle 11g - PL / SQL), div всегда будет переходить на следующую строку, и в этом случае вы должны использовать тег span вместо этого.

Это творило чудеса для меня.

<span float: left; white-space: nowrap; overflow: hidden; onmouseover="rollOverImageSectionFiveThreeOne(this)">
    <input type="radio" id="radio4" name="p_verify_type" value="SomeValue"  />
</span> 
Just Your Text || 
<span id="headerFiveThreeOneHelpText" float: left; white-space: nowrap; overflow: hidden;></span>

Огромная помощь в этом, это все, что сработало для меня, вероятно, потратил 30 минут на это, смеется. Как ни странно, я не использую ничего из того, что вы упомянули, css, javascript, bootstrap и некоторые пользовательские css.
Эденкорбин


1
div {
    display: flex;
    flex-direction: row; 
}

было решение, которое работало для меня. В некоторых случаях с div-lists это необходимо.

некоторые альтернативные значения направления, row-reverse, column, column-reverse, unset, initial, inherit которые делают то, что вы ожидаете от них делать


0

Попробуйте установить высоту, чтобы блок не увеличивался, чтобы вместить ваш текст, и сохраните overflow: hiddenпараметр

РЕДАКТИРОВАТЬ: Вот пример того, что вы могли бы, если вам нужно отображать 2 строки в высоту:

div {
    border: 1px solid black;
    width: 70px;
    height: 2.2em;
    overflow: hidden;
}

В вашем случае опция nowrap, вероятно, лучше, но я оставил свой ответ, потому что иногда мне нужен блок, в который могут быть перенесены строки, до тех пор, пока он не переполнится следующим образом: jsfiddle.net/NXchy/7 (изменил ссылку с версии Стивенмурдока, спасибо!)
Wouter Simons

В этом нет необходимости, что произойдет, если пользователь захочет увеличить размер текста с помощью ctrl- +? Сохранять гибкость высоты лучше.
Марк Одет

Если пользователь изменяет размер текста с помощью ctrl- +, это должно сработать: jsfiddle.net/kpKW3
Wouter Simons

Использование em's в heightгибкости, ключевой момент хорошо проиллюстрирован здесь в вашем примере.
Марк Одет
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.