这就是我目前的情况:http://jsfiddle.net/nw9n1658/
我希望只有当我将鼠标悬停在段落内的链接上时才能显示辅助框,我可以在只使用CSS的情况下执行此操作(如果是这样的话)?或者我必须熟悉JS。
.wrapper {
height: 100%;
}
.primary-box {
background-color: #ffff99;
margin: auto;
width: 400px;
height: 300px;
border: dotted 2px #b2b26b;
border-radius: 20px;
text-align: center;
}
.secondary-box {
display: none;
background-color: #ffff99;
margin: auto;
width: 200px;
height: 120px;
border: dotted 2px #b2b26b;
border-radius: 20px;
text-align: center;
}
.primary-box p {
font-size: 1em;
line-height: 1.3;
text-align: justify;
padding-right: 10px;
padding-left: 10px;
}
.main-text:hover ~ .secondary-box {
display: inline-block;
}
答案 0 :(得分:1)
您的问题是div
元素不应该是p
元素的子元素。
<div class="primary-box">
<h2>Heading</h2>
<div class="main-text">
Here is some text. The box only appears when hovering over <a href="#">this link</a>
<div class="secondary-box">
<p>This is text inside a box</p>
</div>
</div>
</div>
如果您修改HTML并将p
元素与类.main-text
更改为div
元素,则可以使用以下选择器:
.main-text a:hover ~ .secondary-box {
display: inline-block;
}
这是有效的,因为a
元素和.secondary-box
元素是兄弟姐妹。
如果您希望框在鼠标悬停在其上时保持可见,请添加另一个选择器:
.main-text a:hover ~ .secondary-box,
.secondary-box:hover {
display: inline-block;
}