Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Em projetos de interfaces modernas, muitas vezes nos deparamos com elementos que utilizam propriedades CSS como white-space: nowrap, overflow: hidden e text-overflow: ellipsis para gerenciar textos longos. Essa combinação é eficiente para manter a estética, mas traz um desafio comum: como detectar, via código, quais elementos estão tendo seu conteúdo truncado?
Se a sua aplicação depende de ações específicas ao identificar textos cortados — como exibir tooltips, ajustar dinamicamente o layout ou sinalizar conteúdos que precisam de atenção — entender como fazer essa detecção é essencial.
Apesar de parecer simples, não há uma API direta que informe se o conteúdo de um elemento foi truncado por overflow. A solução mais confiável até o momento envolve criar um clone do elemento, remover restrições de largura e comparar suas larguras. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
Para isso, clone o elemento, ajustando seu estilo para que ele seja exibido inline, com largura automática e visibilidade escondida, assim:
const elemento = document.querySelector('.meu-elemento'). const clone = elemento.cloneNode(true). clone.style.display = 'inline'. clone.style.width = 'auto'. clone.style.visibility = 'hidden'. document.body.appendChild(clone). const overflow = clone.offsetWidth > elemento.offsetWidth. document.body.removeChild(clone). if (overflow) {
// O conteúdo está sendo truncado
}
Essa abordagem, embora hacky, funciona na maioria dos navegadores atuais, pois mede a largura do conteúdo não limitado e compara com o tamanho do elemento original. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
Para facilitar a reutilização, pode-se criar uma expressão de pseudo-seletor em jQuery, que encapsula essa lógica: A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois.
$.expr[':'].truncated = function(elem) {
const $elem = $(elem). const $clone = $elem.clone()
.css({ display: 'inline', width: 'auto', visibility: 'hidden' })
.appendTo('body'). const isTruncated = $clone.width() > $elem.width(). $clone.remove(). return isTruncated. }. // Uso:
const elementosTruncados = $('.meu-selector:truncated'). Sem esse critério, a solução pode parecer simples no começo e cara no suporte.
Essa técnica permite identificar facilmente elementos que tiveram seu texto cortado, facilitando ações específicas e melhorias na UX. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta.
Apesar de eficaz, essa abordagem tem custos de performance, especialmente se aplicada em listas extensas. Além disso, ela depende do layout estar pronto, então deve ser executada após renderizações ou mudanças de layout. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
Para cenários mais complexos, como textos com múltiplas linhas ou com diferentes estilos de overflow, será necessário adaptar a lógica, possivelmente combinando outros métodos como medições de scroll ou uso de APIs de Intersection Observer. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta.
1. Crie uma função que clone e compare larguras, como demonstrado.
2. Implemente um pseudo-seletor personalizado, se usar jQuery.
3. Execute essa verificação após renderizações ou mudanças de layout.
4. Use o resultado para acionar tooltips, ajustar estilos ou sinalizar conteúdos.
Essa técnica, mesmo que considerada hacky por alguns, oferece um controle prático e confiável na maioria dos casos, trazendo maior assertividade ao seu gerenciamento de conteúdos truncados. A decisão fica mais saudável quando o time consegue medir o impacto depois. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar.
Para quem busca otimizar esse processo, o uso de APIs nativas de medição de scroll ou a combinação de observadores de mutação pode ajudar a reduzir o impacto de performance. No fim, a chave é entender o fluxo de layout e aplicar a lógica no momento adequado, evitando verificações desnecessárias durante operações críticas. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. A decisão fica mais saudável quando o time consegue medir o impacto depois. A decisão fica mais saudável quando o time consegue medir o impacto depois.
Carregando comentários...