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;
}
Bazzz
источник
71

Используйте white-space:nowrapиoverflow:hidden

http://jsfiddle.net/NXchy/8/

anothershrubery
источник
34
Добавьте text-overflow:ellipsis;к выше для лучшего взгляда.
TJ-Выемка
это может быть достигнуто без CSS?
Нилон
51

в вашем использовании CSS 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>
Dököll
источник
Огромная помощь в этом, это все, что сработало для меня, вероятно, потратил 30 минут на это, смеется. Как ни странно, я не использую ничего из того, что вы упомянули, css, javascript, bootstrap и некоторые пользовательские css.
Эденкорбин
3

добавь это в свой div

white-space: nowrap;

http://jsfiddle.net/NXchy/1/

stephenmurdoch
источник
1
Вы можете добавить: переполнение: авто для отображения горизонтальной полосы прокрутки
Сара Уэст
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гибкости, ключевой момент хорошо проиллюстрирован здесь в вашем примере.
Марк Одет