CSS selectare "negativa"

Am mai multe li ul care au in ele un div.
Vreau ca div-ul plusminus sa fie ascuns pentru toate li-urile care au clasa listel si care NU au clasa sselected. am incercat ceva de genul cu div.listel:not(.sselected) dar aparent nu functioneaza.

elementele de html arata cam asa:


<li class="listel sselected">
	<div class="plusminus"></div>
	Un text
</li>

<li class="listel">
	<div class="plusminus"></div>
	Un text
</li>



<li class="listel">
	<div class="plusminus"></div>
	Un text
</li>

Salut, vezi ca ai cateva probleme in codul ala, 2 li-uri nu sunt inchise bine, in div-uri nu ai text ( probabil ca ai vrut sa pui “Un text” in div, muta textul in div daca e asa. Selectorul css merge, doar ca nu ai selectat ce trebuie, tu selectezi div-uri care au clasa listel si nu ai asa ceva in codul tau, pune “.listel:not(.sselected) div” si o sa mearga.
Daca inveti CSS, porneste de aici: CSS Selectors Reference .

2 Likes

În cazul ăsta nu ai nevoie de :not

.plusminus {
   display: none;
}

.selected .plusminus {
   display: inline;
}

.selected .plusminus e mai specific și are prioritate fata de .plusminus

1 Like

multumesc pentru sugestii, li-urile nu le inchisesem pentru ca am scris codul rapid ca sa se inteleaga. mersi pentru raspuns, it works!