Não sei por que esse CSS simples não está funcionando ...
.app a {
height: 18px;
width: 140px;
padding: 0;
overflow: hidden;
position: relative;
margin: 0 5px 0 5px;
text-align: center;
text-decoration: none;
text-overflow: ellipsis;
white-space: nowrap;
color: #000;
}
<div class="app">
<a href="">Test Test Test Test Test Test</a>
</div>
Deve ser interrompido em torno do quarto "teste"
FF only
- sefilter
aplicado, as reticências não serão renderizadas. erro abertotext-overflow
: brainlessdeveloper.com/2017/07/29/why-wont-my-text-overflowRespostas:
text-overflow:ellipsis;
só funciona quando o seguinte for verdadeiro:px
(pixels). A largura em%
(porcentagem) não funcionará.overflow:hidden
ewhite-space:nowrap
definir.A razão que você está tendo problemas aqui é porque a
width
do seua
elemento não é restrito. Você tem umawidth
configuração, mas como o elemento está definido comodisplay:inline
(por exemplo, o padrão), ele está ignorando e nada mais está restringindo sua largura.Você pode corrigir isso seguindo um destes procedimentos:
display:inline-block
oudisplay:block
(provavelmente o primeiro, mas depende das suas necessidades de layout).display:block
e dê a ele um elemento fixowidth
oumax-width
.float:left
oufloat:right
(provavelmente o primeiro, mas, novamente, qualquer um deve ter o mesmo efeito no que diz respeito às reticências).Eu sugiro
display:inline-block
, pois isso terá o mínimo impacto colateral no seu layout; funciona muito parecido com odisplay:inline
que está usando atualmente no que diz respeito ao layout, mas fique à vontade para experimentar também os outros pontos; Tentei fornecer o máximo de informações possível para ajudar você a entender como essas coisas interagem; uma grande parte do entendimento de CSS é entender como vários estilos funcionam juntos.Aqui está um trecho com seu código, com um
display:inline-block
adicionado, para mostrar o quão perto você estava.Referências úteis:
fonte
white-space: nowrap
na verdade não é necessário. Ainda podemos ver as elipses mesmo sem elas. Para várias linhastext-overflow
, ver este SOwhite-space: nowrap
é necessário.width
. Tudo que você precisa fazer é definir umwhite-space: nowrap;
e ele funciona muito bem.A resposta aceita é incrível. No entanto, você ainda pode usar a
%
largura e o alcancetext-overflow: ellipsis
. A solução é simples:Parece que sempre que você usa
calc
, o valor final é renderizado em pixels absolutos, que consequentemente se converte80%
em algo parecido800px
com um1000px
contêiner de largura. Portanto, em vez de usarwidth: [YOUR PERCENT]%
, usewidth: calc([YOUR PERCENT]%)
.fonte
Portanto, se você responder a essa pergunta porque está tendo problemas para tentar fazer as reticências funcionarem dentro de um
display: flex
contêiner, tente adicionarmin-width: 0
ao contêiner mais externo que está transbordando seu pai, mesmo que você já o tenha definidooverflow: hidden
e veja como isso funciona para você.Mais detalhes e um exemplo de trabalho sobre esse código, por aj-foster . Totalmente fiz o truque no meu caso.
fonte
position: sticky
elemento dentro de umdisplay: flex
contêiner.Verifique também se
word-wrap
está definido como normal no IE10 e abaixo.Os padrões mencionados abaixo definem o comportamento dessa propriedade como dependente da configuração da propriedade "text-wrap". No entanto, as configurações do wordWrap sempre são eficazes no Windows Internet Explorer porque o Internet Explorer não oferece suporte à propriedade "quebra de texto".
Portanto, no meu caso,
word-wrap
foi definido como quebra-palavra (herdada ou por padrão?), Causandotext-overflow
trabalho no FF e no Chrome, mas não no IE.informações de ms na propriedade quebra automática de linha
fonte
anchor
,span
... as tags são elementos embutidos por padrão, caso awidth
propriedade de elementos embutidos não funcione. Então você tem que converter seu elemento em uminline-block
ou maisblock level
elementosfonte
Inclua as quatro linhas escritas após as informações para que as reticências funcionem
fonte
Adicione
display: block;
oudisplay: inline-block;
ao seu#User_Apps_Content .DLD_App a
demonstração
fonte
Você acabou de adicionar uma linha css:
fonte
No bootstrap 4 , você pode adicionar uma
.text-truncate
classe para truncar o texto com reticências.fonte
Deve conter
NÃO DEVE conter
Deve conter
fonte
Você também pode adicionar float: left; dentro desta classe #User_Apps_Content .DLD_App a
fonte
Eu tive que fazer algumas descrições longas elipse (pegue apenas uma pista) enquanto respondia, então minha solução foi deixar o texto quebrar (em vez de
white-space: nowrap
) e, em vez de largura fixa, adicionei altura fixa:fonte
Este é o código que permite que:
estouro: oculto é necessário
fonte
Eu enfrentei o mesmo problema e parece que nenhuma das soluções acima funciona para o Safari. Para navegadores não-safari, isso funciona muito bem:
Para o Safari, este é o que funciona para mim. Observe que a consulta de mídia para verificar se o navegador é o Safari pode mudar com o tempo, portanto, basta mexer na consulta de mídia se ela não funcionar. Com a
line-clamp
propriedade, também seria possível ter várias linhas na web com reticências, veja aqui .fonte
https://stackoverflow.com/a/53784508/5626747
Não posso comentar devido à reputação, por isso estou fazendo outra resposta:
Nesse caso, você também precisará remover a
display: block;
propriedade geralmente sugerida do elemento em que você ativoutext-overflow: ellipsis;
ou ela será cortada sem o ... no final.fonte
fonte