Ich habe die folgende Markup, und ich muss eine CSS-Möglichkeit finden, ein Dreieck zu ändern, wenn .Hide-Klasse aktiv ist.CSS: Vorher und Geschwister Selektor funktioniert nicht
Um dies zu erreichen, habe ich ein Pseudo-Element wie folgt verwendet:
summary:before {
content: '\25BC';
}
summary:before + .hide {
content: '\25BA';
}
Das Problem ist: Es funktioniert nicht. Der Pfeil ändert sich nicht. Auch wenn Zusammenfassung: vor + .Hide erscheint in den DevTools.
So, wie man den gewünschten Effekt erzielt, ohne JavaScript nur CSS zu verwenden?
var $div = $('summary');
$div.on('click', function() {
$('ul').toggleClass('hide');
});
.wrapper {
width: 300px;
height: 300px;
background-color: #ecf0f1;
}
.details {
outline: none;
background-color: #95a5a6;
cursor: pointer;
position: relative;
}
summary {
outline: none;
margin-left: 30px;
}
summary:before {
content: '\25BA';
font-size: 12px;
position: absolute;
top: 2px;
left: 13px;
}
summary:before + ul.hide {
content: '\25BC';
font-size: 12px;
position: absolute;
top: 2px;
left: 13px;
}
.hide {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">
<div class="details">
<summary>Sample</summary>
<ul class="hide">
<li>
<input type="radio" checked/>
<label>Label 1</label>
</li>
<li>
<input type="radio" />
<label>Label 2</label>
</li>
<li>
<input type="radio" />
<label>Label 3</label>
</li>
</ul>
</div>
</div>
Mögliche Duplikat [Gibt es einen "vorherigen Geschwister" CSS-Selektor?] (Http://stackoverflow.com/questions/1817792/is-there-a-previous-sibling-css- Selektor) – Pete
"Zusammenfassung: vor + .Hide erscheint in den DevTools" Warte, ernsthaft? Das ist super komisch. Es ist kein gültiger Selektor. – BoltClock
Wenn Sie eine Klasse mit jQuery umschalten, tun Sie dies entweder im übergeordneten Container oder schalten Sie einfach nur eine Klasse in der Zusammenfassung ein. – Pete