Eu sei que você pode usar uma combinação de regras CSS para fazer o texto terminar com reticências (...) quando for hora de estourar (sair dos limites dos pais).
É possível (fique à vontade para apenas dizer não) obter o mesmo efeito, mas deixar o texto quebrar em mais de uma linha?
div {
width: 300px;
height: 42px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
Como você pode ver, o texto termina com reticências quando é mais largo que a largura do div. No entanto, ainda há espaço suficiente para o texto quebrar em uma segunda linha e continuar. Isso é interrompido por white-space: nowrap
, que é necessário para que as reticências funcionem.
Alguma ideia?
PS: Sem soluções JS, CSS puro se possível.
Respostas:
Não tenho certeza se você viu ISTO , mas o excelente CSS-Tricks.com de Chris Coyier postou um link para isso há algum tempo e é uma solução CSS pura que realiza exatamente o que você procura.
(Clique para visualizar no CodePen)
HTML:
CSS:
Claro, ser uma solução CSS pura significa que também é bastante complicada, mas funciona de forma limpa e elegante. Assumirei que Javascript está fora de questão porque é muito mais fácil de conseguir (e possivelmente mais degradável) com Javascript.
Como um bônus adicional, há um arquivo zip para download do processo completo (se você quiser entendê-lo e tudo), mas também um arquivo mixin SASS para que você possa dobrá-lo em seu processo facilmente.
Espero que isto ajude!
http://www.mobify.com/blog/multiline-ellipsis-in-pure-css/
fonte
Propriedades CSS fáceis podem resolver o problema. O seguinte é para reticências de três linhas.
fonte
Dê uma olhada nesta versão css pura: http://codepen.io/martinwolf/pen/qlFdp
fonte
text-overflow
edisplay
?O CSS abaixo deve resolver o problema.
Após a segunda linha, o texto conterá ...
fonte
overflow:hidden
Minha solução reutiliza a de amcdnl, mas meu substituto consiste em usar uma altura para o contêiner de texto:
fonte
-webkit-line-clamp
não funciona para IE11, Edge ou Firefox.Use isto se acima não estiver funcionando
fonte
Com base em uma resposta que vi no stackoveflow, criei este mixin MENOS ( use este link para gerar o código CSS ):
Uso
fonte
Parece mais elegante combinar duas classes. Você pode abandonar a
two-lines
aula se apenas uma linha precisar ver:fonte
Restringir a poucas linhas funcionará em quase todos os navegadores, mas reticências (3 pontos) não serão exibidas no Firefox e no IE. Demo - http://jsfiddle.net/ahzo4b91/1/
fonte
Eu encontrei uma combinação de obras de grampo de linha e altura de linha: D
fonte
Em meu aplicativo angular, o seguinte estilo funcionou para eu conseguir reticências no excesso de texto na segunda linha :
Espero que ajude alguém.
fonte
Para aqueles que trabalham em scss , você precisa adicionar
!autoprefixer
ao início do comentário para que seja preservado para postcss:Eu enfrentei esse problema, é por isso que postá-lo aqui
Referência
fonte
Você pode usar um efeito dissolvido em vez de reticências, CSS puro e parece mais profissional:
Aqui, presumi que sua cor de fundo é branca.
fonte
Este é um hack total, mas funciona:
http://jsfiddle.net/2wPNg/
Ele tem problemas ... pode cortar uma carta sem jeito e provavelmente terá alguns resultados estranhos em um site responsivo.
fonte
Aqui está um script simples para gerenciar as reticências usando jQuery. Ele inspeciona a altura real do elemento e cria um nó original oculto e um nó truncado. Quando o usuário clica, ele alterna entre as duas versões.
Um dos grandes benefícios é que a "reticência" fica próxima da última palavra, conforme o esperado.
Se você usar soluções CSS puras, os três pontos aparecerão distantes da última palavra.
fonte
Não tem certeza de qual é o seu destino, mas deseja que o texto apareça na segunda linha?
Aqui está seu jsFiddle: http://jsfiddle.net/8kvWX/4/ acaba de remover o seguinte:
Não tenho certeza se é isso que você está procurando ou não.
Saudações,
Mee
fonte