Ho una raccolta di commenti nidificati. Il mio obiettivo è visualizzare un'opzione di 'risposta' quando si passa il mouse su ciascun commento separatamente. Ciò significa che non voglio che l'opzione "rispondi" venga visualizzata per genitore/fratello/figlio del commento che sto passando.Selezione dell'elemento solo al passaggio del mouse per elementi nidificati immediatamente
L'unica domanda simile che ho trovato è: Can I control CSS selection for :hover on nested elements? Non sono nemmeno sicuro che i suoi bisogni siano gli stessi, e inoltre i violini non sembrano funzionare.
Ho preparato un fiddle quindi è meglio vedere quello che voglio dire:
.comment {
padding: 10px;
border: 1px solid black;
margin-top: 10px;
}
.text {} .comment:hover > .reply {
display: inline-block;
}
.reply {
display: none;
}
.children-comments {
margin-left: 50px;
margin-top: 10px;
}
<div class="comment">
<a class="text">wohoo</a>
<a class="reply">reply</a>
<div class="children-comments">
<div class="comment">
<a class="text">wohoo</a>
<a class="reply">reply</a>
<div class="children-comments">
</div>
</div>
<div class="comment">
<a class="text">wohoo</a>
<a class="reply">reply</a>
<div class="children-comments">
<div class="comment">
<a class="text">wohoo</a>
<a class="reply">reply</a>
<div class="children-comments">
<div class="comment">
<a class="text">wohoo</a>
<a class="reply">reply</a>
<div class="children-comments">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="comment">
<a class="text">wohoo</a>
<a class="reply">reply</a>
<div class="children-comments">
</div>
</div>
</div>
</div>
Si noti che usando >
nel selettore fa lavoro di ignorare gli elementi di pari livello, ma seleziona ancora il genitore elementi. In altre parole, a prescindere dal commento che si sta guardando, il genitore di tutti mostrerà sempre l'opzione "rispondi".
Questo può essere fatto solo con i CSS? Sono aperto alle soluzioni js, ma sarei più che felice se esistesse una soluzione solo CSS.
Finito, non volevo ingombrare la domanda con una caldaia inutile, ma punto underst ood :) – mezod
Potresti ancora farlo. Basta usare snippet e selezionare l'opzione nascosta per impostazione predefinita. In questo modo il tuo codice sarà in questione e il boilerplate non verrà mostrato a meno che non sia espanso :) – Harry