Sélection d'une classe et premier 3 du reste; nth-child et nth-of-type inutile

J'ai un élément du DOM (#installations) avec un certain nombre d'enfants, un seul d'entre eux dispose d'une classe .sélectionné. J'ai besoin de sélectionner cette classe et les 3 premiers du reste (:not(.sélectionné)) et de leur montrer - le but est d'avoir seulement 4 éléments, indépendamment de l'élément a de la classe .sélectionné.

Le problème est que, dans l'expression:

#installations > *:not(.selected):nth-of-type(-n+3), .selected

:nth-of-type() ignore le :not() sélecteur et choisit les 3 premiers enfants de #installation. Par exemple, si j'ai ce code HTML:

<div id="installations">
    <div id="one"/>
    <div id="two"/>
    <div id="three" class="selected"/>
    <div id="four"/>
    <div id="five"/>
</div>

J'y aura seulement une, deux, trois et pas dans les quatre premiers. L'implication logique est que :nth-of-type() aura seulement (un, deux, quatre, cinq) pour sélectionner à partir, depuis :not() déjà exclus du choisi, donc la sélection de (un, deux, quatre), et puis l'autre partie de la sélection .selected va ajouter l'élément sélectionné.

Si .sélectionnée n'est pas dans les quatre premiers éléments, disons que c'est la sixième, nous aurons les trois premiers + sixième éléments sélectionnés.

À clarifier: la sélection .sélectionné plus 3 les éléments adjacents est aussi très bien. Cependant, je il est également difficile dans cas .sélectionné est dans les 3 derniers (si l'on a sélectionné les 3 éléments adjacents)

source d'informationauteur Ivo