É possível usar o seletor CSS3 :first-of-type
para selecionar o primeiro elemento com um determinado nome de classe? Não tive sucesso com o meu teste, então estou pensando que não é?
O código ( http://jsfiddle.net/YWY4L/ ):
p:first-of-type {color:blue}
p.myclass1:first-of-type {color:red}
.myclass2:first-of-type {color:green}
<div>
<div>This text should appear as normal</div>
<p>This text should be blue.</p>
<p class="myclass1">This text should appear red.</p>
<p class="myclass2">This text should appear green.</p>
</div>
fonte
.myclass1
seletor selecionaria todos os elementos de.myclass1
. O seletor.myclass1 ~ .myclass1
usa o combinador geral de irmãos para selecionar todos os elementos da classe.myclass1
que é o irmão seguinte de um elemento com uma classe de.myclass1
. Isso é explicado em detalhes surpreendentes aqui .O rascunho do CSS Selectors Level 4 propõe adicionar uma
of <other-selector>
gramática ao:nth-child
seletor . Isso permitiria que você a escolher o n º criança combinando um determinado outro seletor:Os rascunhos anteriores usavam uma nova pseudo-classe;
:nth-match()
portanto, você pode ver essa sintaxe em algumas discussões sobre o recurso:Isso já foi implementado no WebKit e, portanto, está disponível no Safari, mas parece ser o único navegador que o suporta . Há tickets arquivados para implementá-lo Blink (Chrome) , Gecko (Firefox) e uma solicitação para implementá-lo no Edge , mas nenhum progresso aparente em nenhum deles.
fonte
Isso não possível utilizar o seletor CSS3 : first-of-tipo para selecionar o primeiro elemento com um determinado nome da classe.
No entanto, se o elemento de destino tiver um irmão elemento anterior, você poderá combinar a pseudo classe CSS de negação e os seletores de irmãos adjacentes para corresponder a um elemento que não possui imediatamente um elemento anterior com o mesmo nome de classe:
Exemplo completo de código de trabalho:
fonte
Encontrei uma solução para sua referência. de alguns divs de grupo, selecione do grupo de duas divs da mesma classe o primeiro
BTW, não sei por que
:last-of-type
funciona, mas:first-of-type
não funciona.Minhas experiências com jsfiddle ... https://jsfiddle.net/aspanoz/m1sg4496/
fonte
Este é um tópico antigo, mas estou respondendo porque ainda aparece no alto da lista de resultados de pesquisa. Agora que o futuro chegou, você pode usar o pseudo-seletor: enésimo filho.
O pseudo-seletor: enésimo filho é poderoso - os parênteses aceitam fórmulas e números.
Mais aqui: https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child
fonte
Como solução alternativa, você pode agrupar suas classes em um elemento pai como este:
fonte
Não sei como explicar isso, mas me deparei com algo semelhante hoje. Não é possível definir
.user:first-of-type{}
enquanto.user:last-of-type{}
funcionou bem. Isso foi corrigido depois que eu os envolvi em uma div sem nenhuma classe ou estilo:https://codepen.io/adrianTNT/pen/WgEpbE
fonte
Você pode fazer isso selecionando todos os elementos da classe que são irmãos da mesma classe e invertendo-os, o que selecionará praticamente todos os elementos da página; portanto, você deverá selecionar novamente pela classe.
por exemplo:
fonte
Simplesmente
:first
funciona para mim, por que isso ainda não foi mencionado?fonte
:first
é uma pseudo-classe relacionada à impressão.