Definir o estilo pai através do filho [duplicado]
Esta pergunta já tem uma resposta:
Digamos que tenho o seguinte:- Há algum selector de pais do CSS? 27 Respostas
<ul>
:
<ul>
<li>Child</li>
<li><span class="active">Child</span></li>
<li>Child</li>
</ul>
É possível para mim mudar o estilo do <li>
através do active
<span>
?
por exemplo:
.active:parent(li) {
background-color: red;
}
Consegui isto com o jQuery, mas continua a piscar. a tela por um segundo split (esperando o DOM para carregar) e eu quero evitar isso.
0
Author: Temani Afif, 2018-02-08
2 answers
Isto é impossível com css puro, porque a css não consegue apanhar o bakward.
você deve usar javascript ou jquery:
$(document).ready(function(){
$('li').has('.active').css('background-color','yellow');
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<ul>
<li>Child</li>
<li><span class="active">Child</span></li>
<li>Child</li>
</ul>
1
Author: Ehsan, 2018-02-08 02:30:24
Não há maneira de fazer isto na CSS.
A melhor coisa a fazer seria fazer algo como:
<ul class="has-active">
<li>Child</li>
<li><span class="active">Child</span></li>
<li>Child</li>
</ul>
E estilo
ul.has-active {
...
}
Se está à procura de algo que possa fazer os selectores pais, então olhe para algo como xpath .
0
Author: dwjohnston, 2018-02-08 02:46:48