CSS text-overflow: ellipsis
na segunda linha, isso é possível? Não consigo encontrá-lo na rede.
exemplo:
o que eu quero é assim:
I hope someone could help me. I need
an ellipsis on the second line of...
mas o que está acontecendo é o seguinte:
I hope someone could help me. I ...
Respostas:
Um requisito para
text-overflow: ellipsis;
trabalhar é uma versão de uma linha dewhite-space
(pre
,nowrap
etc). O que significa que o texto nunca alcançará a segunda linha.Ergo. Não é possível em CSS puro.
Minha fonte quando eu estava procurando exatamente a mesma coisa agora: http://www.quirksmode.org/css/textoverflow.html (Quirksmode ftw!)
EDIT Se os bons deuses do CSS implementarem http://www.w3.org/TR/css-overflow-3/#max-lines , podemos colocar isso em CSS puro usando
fragments
(novo) emax-lines
(novo). Também mais algumas informações em http://css-tricks.com/line-clampin/EDIT 2 O WebKit / Blink tem
line-clamp
:-webkit-line-clamp: 2
colocará reticências na 2ª linha.fonte
Isso deve funcionar nos navegadores do kit da web :
fonte
overflow: hidden
para que isso funcione.Como outros já responderam, não existe uma solução CSS pura. Existe um plugin jQuery que é muito fácil de usar, chamado de dotdotdot . Ele usa a largura e a altura do contêiner para calcular se ele precisa truncar e adicionar reticências.
Aqui está um jsFiddle .
fonte
Descobri que a resposta de Skeep não era suficiente e também precisava de um
overflow
estilo:fonte
se alguém estiver usando SASS / SCSS e se deparar com essa pergunta - talvez esse mixin possa ser útil:
isso adiciona apenas as reticências nos navegadores do kit da web. o resto apenas corta.
fonte
/* autoprefixer: off */
para/*! autoprefixer: off */
outra forma-webkit-box-orient: vertical;
estava sendo removido após a compilação que significa que o reticências nunca mostrouBasta usar o grampo de linha nos navegadores que o suportam (navegadores mais modernos) e voltar a 1 linha para os mais antigos.
fonte
Que pena que você não pode fazê-lo funcionar em duas linhas! Seria incrível se o elemento fosse bloco de exibição e tivesse uma altura definida para 2em ou algo assim, e quando o texto estourasse, mostraria uma elipse!
Para um único revestimento, você pode usar:
Para várias linhas, talvez você possa usar um Polyfill, como a autoellipsis do jQuery, que está no github http://pvdspek.github.com/jquery.autoellipsis/
fonte
dotdotdot
mencionado em outro post.Eu não sou um profissional de JS, mas descobri algumas maneiras de fazer isso.
O HTML:
Em seguida, com o jQuery, você o trunca para uma contagem de caracteres específica, mas deixa a última palavra como esta:
O resultado fica assim:
Ou você pode simplesmente truncá-lo para uma contagem de caracteres específica como esta:
O resultado fica assim:
Espero que ajude um pouco.
Aqui está o jsFiddle .
fonte
Aqui está um bom exemplo em CSS puro.
fonte
Eu usei o jQuery-condensar-plugin antes, que parece que pode fazer o que você deseja. Caso contrário, existem plugins diferentes que podem atender às suas necessidades.
Edit: Fiz uma demo para você - observe que eu vinculei o jquery.condense.js na demo que faz a mágica, crédito total ao autor desse plugin :)
fonte
É um CSS não padrão, que não é coberto na versão atual do CSS (o Firefox não suporta). Tente usar JavaScript.
fonte
Modo CSS puro de aparar texto de múltiplas linhas com reticências
Ajuste a altura e a linha de controle do contêiner de texto para quebrar -webkit-line-clamp: 2;
fonte
Eu já conheci esse problema antes e não há uma solução css pura
É por isso que desenvolvi uma pequena biblioteca para lidar com esse problema (entre outros). A biblioteca fornece objetos para modelar e executar a renderização de texto no nível da letra. Você pode, por exemplo, emular um excesso de texto: reticências com um limite arbitrário (não é necessária uma linha)
Leia mais em http://www.samuelrossille.com/home/jstext.html para obter uma captura de tela, tutorial e link para transferência.
fonte
Se alguém está tentando fazer com que o grampo de linha funcione no flexbox , é um pouco mais complicado - especialmente quando você faz testes de tortura com palavras muito longas. As únicas diferenças reais nesse trecho de código estão
min-width: 0;
no item flex que contém texto truncado eword-wrap: break-word;
. Uma dica para https://css-tricks.com/flexbox-truncated-text/ para obter informações. Isenção de responsabilidade: este ainda é o webkit apenas até onde eu sei.http://codepen.io/AlgeoMA/pen/JNvJdx (versão codepen)
fonte
Todas as respostas aqui estão erradas, faltam uma peça importante, a altura
fonte
uma base pura de método css no -webkit-line-clamp, que funciona no webkit:
fonte
Não é uma maneira realmente fácil de fazer isso. Use a biblioteca Clamp.js .
fonte
Encontrei uma solução, no entanto, você precisa conhecer um tamanho aproximado de caractere que caiba na sua área de texto e, em seguida, junte um ... ao espaço anterior.
A maneira que eu fiz isso é:
código:
aqui está um violino - http://jsfiddle.net/GYsW6/1/
fonte