Ciao
@fermat, no, in questo modo non può funzionare. Nulla di personale, è una pura questione di logica, anche se potrebbe non essere così scontata e intuitiva. I due selettori, separati da virgola, sono valutati singolarmente; questo produrrà due sottogruppi di elementi in cui mancherà un elemento .tag, distinto per ciascuno dei due sottogruppi; perciò tutti gli elementi dei due sottogruppi saranno poi "assemblati" in un unico gruppo e quindi considerati per questa regola, col risultato che nessuno degli elementi .tag sarà escluso in questo particolare caso.
Cerco di spiegare con un esempio.
Supponiamo di avere la serie di elementi 1, 2, 3, 4, 5.
Il primo selettore .tag:not(:nth-child(2)) seleziona gli elementi 1, 3, 4, 5 (cioè il 2 è escluso)
Il secondo selettore .tag:not(:nth-child(3)) seleziona gli elementi 1, 2, 4, 5 (cioè il 3 è escluso)
A questo punto sono considerati tutti gli elementi restituiti dall'insieme dai due selettori, quindi: 1, 2, 3, 4, 5 (cioè nessuno è escluso).
Chiaramente gli elementi presi più volte sono da considerarsi un'unica volta.
---
Per "concatenare due esclusioni" puoi usare questa forma:
dove dal risultato del primo not che esclude il 2 (e quindi restituisce 1, 3, 4, 5) sarà ulteriormente escluso il 3 (ottenendo 1, 4, 5).codice:.tag:not(:nth-child(2)):not(:nth-child(3)) { ... }