Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcelo2605

detectar a última palavra antes de uma quebra de linha

Recommended Posts

Tenho uma sequência de palavras dentro de uma div com largura e altura definidas:

 

<div class="box">
 <a href="#">palavra1</a>
 <a href="#">palavra2</a>
 <a href="#">palavra3</a>
 <a href="#">palavra4</a>
 <a href="#">palavra5</a>
</div>

 

Incluí um espaço entre as palavras:

 

a{margin-right:10px;}

 

Mas queria um script que eliminasse a margem nas últimas palavras antes da quebra das linhas. Isso é possível com jQuery?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem seletor css para isso.

 

:last-child {}

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq não serve cara ?

 

qual o seu caso ? em qual item quebra ?

 

além do last-child tem o nth-child

 

 

 

Oq você pediu, não existe. Não da forma q você pensa ser possível.

Compartilhar este post


Link para o post
Compartilhar em outros sites

William,

 

A div tem uma largura específica. A quebra vai depender do tamanho das palavras. Por exemplo: podem caber três palavras pequenas na mesma linha ou duas palavras grandes. Por isso não posso usar as pseudo-classes. O que eu estava pensando era um script que detectasse qual a última palavra de cada linha, antes da quebra. Mas também acho que isso é muito específico, até porque não existe nenhuma tag que identifique essa quebra, já que se trata de uma sequência de <a>.

Compartilhar este post


Link para o post
Compartilhar em outros sites
era um script que detectasse qual a última palavra de cada linha, antes da quebra.

não consegui imaginar nenhum algoritmo para tal coisa.

 

Tô pensando aqui.. talvez contando a quantidade de caracteres.. sei lá..

Primeiro de tudo é achar algum algoritmo para identificar "quem é a última palavra".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesquise pela propriedade scrollX. Ela mostra a posição horizontal de um elemento.

O algoritmo em alto nível é:

valor_buffer = 0
ultimos_elementos = array();
Para cada elemento faça
	valor_elemento_atual = scrollX(elemento);
   	se valor_buffer > valor_elemento_atual então
   			//O elemento anterior é o último da linha
           	ultimosElementos.append(anterior(elemento))
		senão
   			valor_buffer = valor_elemento_atual
	fimse
fimpara

 

A ideia do algoritmo é ir verificando a posição horizontal do elemento até que a posição do próximo elemento atual seja menor que a do anterior. Quando isso ocorrer, é porque a linha foi quebrada. Ao final do laço, você obterá um array de elementos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.