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


Respostas:


523

Tente o seguinte:

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



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 ...

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.


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/


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>

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


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


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;
}

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.