【发布时间】:2012-11-27 22:06:10
【问题描述】:
我的 html 是(只有标题)
<div id="msg_wrapper">
<div class="msg_header media unread>
<a class="pull-left"></a>
<div class="media-body">
<h4 class="media-heading">
</h4>
</div>
</div>
<div id="side" class="pull-right">
<div id="sent_at">
<div class="timeago" >
</div>
</div>
<div id="msg_header_side">
<div id="msg_header_icons">
</div>
</div>
</div>
</div>
css 是
.media.unread:hover + #side #msg_header_side{
visibility: visible;
}
#sent_at {
float:right;
}
.msg_header{
position: relative;
margin-bottom: 10px;
}
#msg_header_side{
visibility: hidden;
}
#msg_header_icons{
background-color: transparent;
float: right;
}
#side{
position: absolute;
top: 0;
right: 0;
}
#msg_wrapper{
position: relative;
}
我创建了一个带有类似标签的jsfiddle,并添加了颜色来解释情况
蓝色 (#msg_header_side) 是一个带有选项的部分,当将鼠标悬停在黄色 (.msg_header) 的任何部分时应该出现的选项
问题是当前选择器(我能做的最好的)仅在鼠标光标为黄色时才显示蓝色。
像这样(屏幕截图没有捕捉到鼠标光标 - 它是黄色的):
当光标为红色时 (#side) - 蓝色消失
像这样(屏幕截图没有捕捉到鼠标光标 - 它是红色的):
我的选择器是.media.unread:hover + #side #msg_header_side
我的理解是“媒体类和悬停时未读并与 msg_header_side 作为子级将具有可见性:可见性。
效果不太好..
【问题讨论】:
-
.media.unread:hover + #side #msg_header_side匹配#msg_header_side的 descandant 的#side紧跟在.media.unread:hover之前根据 pattern-matching 的兄弟姐妹。这不是你给出的定义。 -
那么有没有办法修复选择器?
标签: css hover css-selectors