HTML + CSS: como forçar o conteúdo div a permanecer em uma linha?

258

Eu tenho um texto longo dentro de um divcom definidowidth :

HTML:

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

CSS:

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

Como eu poderia forçar a corda a permanecer em uma linha (ou seja, ser cortada no meio de "Estouro")?

Eu tentei usar overflow: hidden, mas não ajudou.

Misha Moroshko
fonte
12
white-space: nowrapcoloque isso na sua etiqueta de estilo.
Moshii 29/09/16

Respostas:

523

Tente o seguinte:

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

Use white-space:nowrapeoverflow:hidden

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

anothershrubery
fonte
34
Adicione text-overflow:ellipsis;acima para obter uma melhor aparência.
precisa
isso pode ser alcançado sem CSS?
Nilon 24/07/19
51

no seu uso de css white-space:nowrap;

Rob Agar
fonte
14

Seu código HTML: <div>Stack Overflow is the BEST !!!</div>

CSS:

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

Agora o resultado deve ser:

Pilha Overf ...
Bozlur Rahman
fonte
12

Todo mundo pulou nessa !!! Eu também fiz um violino:

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

RobAgar ganha um ponto para apontar white-space:nowrapprimeiro.

Algumas coisas aqui são necessárias, overflow: hiddense você não quiser ver os caracteres extras aparecendo em seu layout.

Além disso, como mencionado, você pode usar white-space: pre(consulte o EnderMB) tendo em mente que preo espaço em branco não será recolhido white-space: nowrap.

Marc Audet
fonte
4

Faça uma tentativa. Ele usa pree não nowrapcomo eu diria que você gostaria que isso funcionasse da mesma forma, <pre>mas também funcionará bem:

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

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

Mike B
fonte
4

Eu pulei aqui procurando a mesma coisa, mas nenhuma funcionou para mim.

Há casos em que, independentemente do que você faz, e dependendo do sistema (Oracle Designer: Oracle 11g - PL / SQL), divs sempre passa para a próxima linha; nesse caso, você deve usar a tag span.

Isso fez maravilhas para mim.

<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
fonte
Uma enorme ajuda nisso, foi tudo o que funcionou para mim, provavelmente gastou 30 minutos nisso, lol. Estranhamente, não estou usando nada do que você mencionou, css, javascript, bootstrap e alguns css personalizados.
Edencorbin
3

adicione isso ao seu div

white-space: nowrap;

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

stephenmurdoch
fonte
1
você pode adicionar: overflow: auto para exibir uma barra de rolagem horizontal
Sarah West
1
div {
    display: flex;
    flex-direction: row; 
}

foi a solução que funcionou para mim. Em alguns casos com div-lists isso é necessário.

alguns valores de direção alternativos são row-reverse, column, column-reverse, unset, initial, inherit os que você espera que eles façam

Pingger Shikkoken
fonte
0

Tente definir uma altura para que o bloco não possa crescer para acomodar seu texto e mantenha o overflow: hiddenparâmetro

EDIT: Aqui está um exemplo do que você pode gostar se precisar exibir duas linhas de altura:

div {
    border: 1px solid black;
    width: 70px;
    height: 2.2em;
    overflow: hidden;
}
Wouter Simons
fonte
No seu caso, a opção nowrap é provavelmente melhor, mas deixei minha resposta porque às vezes me vejo precisando de um bloco que pode ter algumas linhas quebradas até que transborde assim: jsfiddle.net/NXchy/7 (alterou o link da versão de Stephenmurdoch, Obrigado!)
Wouter Simons 31 /
Não há necessidade disso, o que acontece se o usuário quiser aumentar o tamanho do texto usando ctrl- +? Manter a altura flexível é melhor.
Marc Audet
Se o usuário redimensiona o texto com Ctrl + é deve apenas trabalho: jsfiddle.net/kpKW3
Simons Wouter
O uso emde s no heightmantém o ponto chave flexível, bem ilustrado aqui no seu exemplo.
Marc Audet