HTML + CSS: Як змусити вміст div залишитися в одному рядку?


258

Я маю довгий текст усередині divз визначенимwidth :

HTML:

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

CSS:

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

Як я можу змусити рядок залишитися в одному рядку (тобто бути розрізаним посередині "Переповнення")?

Я намагався використовувати overflow: hidden, але це не допомогло.


12
white-space: nowrapпомістіть це в тег стилю.
Мошій

Відповіді:


521

Спробуйте це:

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), діви завжди переходитимуть до наступного рядка, і в цьому випадку вам слід використовувати тег 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.
edencorbin


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

було рішенням, яке працювало на мене. У деяких випадках з div-лістами це потрібно.

деякі альтернативні значення напряму - це те, row-reverse, column, column-reverse, unset, initial, inherit що робить те, що ви очікуєте від них


0

Спробуйте встановити висоту, щоб блок не міг зростати для розміщення тексту та зберегти overflow: hiddenпараметр

EDIT: Ось приклад того, що вам може сподобатися, якщо вам потрібно відображати 2 рядки у висоту:

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

У вашому випадку варіант Nowrap, мабуть, кращий, але я залишив свою відповідь, тому що іноді мені здається, що мені потрібен блок, який може містити деякі рядки, поки він не переповнюється так: jsfiddle.net/NXchy/7 (змінив посилання з версії Stephenmurdoch, дякую!)
Wouter Simons

У цьому немає потреби, що станеться, якщо користувач хоче збільшити розмір тексту за допомогою ctrl- +? Зберігати висоту гнучкою краще.
Marc Audet

Якщо користувач змінює розмір тексту за допомогою ctrl- +, слід просто працювати: jsfiddle.net/kpKW3
Wouter Simons

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