【发布时间】:2016-10-17 23:31:07
【问题描述】:
我有一组嵌套的 cmets。我的目标是分别悬停每条评论时显示“回复”选项。这意味着我不希望我悬停的评论的父/兄弟/子显示“回复”选项。
我发现的唯一类似问题是:Can I control CSS selection for :hover on nested elements? 我什至不确定他的需求是否相同,而且小提琴似乎不起作用。
我准备了一个fiddle,所以你最好明白我的意思:
.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>
请注意,在选择器中使用> 确实可以忽略兄弟元素,但它仍然会选择父元素。换句话说,无论您悬停哪个评论,它们的父级都将始终显示“回复”选项。
这完全可以用 CSS 来完成吗?我对 js 解决方案持开放态度,但如果有纯 CSS 解决方案,我会非常高兴。
【问题讨论】:
-
完成了,我不想用无用的样板来混淆这个问题,但点明白了:)
-
你仍然可以这样做。只需使用 sn-ps 并检查默认隐藏选项。这样你的代码就会有问题,除非展开,否则样板文件不会出现:)
标签: javascript html css css-selectors