【发布时间】:2019-10-21 08:11:36
【问题描述】:
所以我遵循了其他主题的解决方案,但我设置的描述仍然不想出现在文本框中。
我已经尝试过了:How To Change Text Box Content On Hover 我仔细检查了css中的每个类名,但仍然没有。可能是什么问题?
相关部分代码:
a {
text-decoration: none;
}
a:link {
color: #3ea500;
}
.a-1:hover~.element-1 {
display: block;
}
.a-2:hover~.element-2 {
display: block;
}
.a-3:hover~.element-3 {
display: block;
}
a:hover {
color: #cc7400;
font-weight: 700;
}
.desc {
background-color: green;
width: 33%;
position: fixed;
border-radius: 5px;
left: 66%;
top: 180px;
}
<body>
<div class="desc">
Description:
<div class="element-1">hello one</div>
<div class="element-2">hello two</div>
<div class="element-3">hello three</div>
</div>
<div>
<ul>
<li>
<a class="a-1" href="#" target="_blank">Deepdream generator.</a>
</li>
<li>
<a class="a-2" href="#" target="_blank">Picture Breeder</a>
</li>
<li>
<a class="a-3" href="#" target="_blank">AI guesses what you draw</a>
</li>
</ul>
</div>
</body>
预期:文本出现在描述框中。
结果:什么都没有发生。
可能是浏览器坏了?
【问题讨论】:
-
~是 the general sibling combinator。您已经更改了答案的 HTML,使得元素不再是兄弟元素。 -
a-1:hover ~ .element-1等。您根本无法这样做,因为您的 .a-1 位于 .element-1 下方。见developer.mozilla.org/en-US/docs/Web/CSS/… -
规则:X ~ Y => 选择在之前有一个 X 元素的每个 Y 元素。您的“目标”
.element-x类在“选择”类.a-x之前,而不是相反。其次,当您更正了这一点后,您会看到“目标”元素前面有<ul>(不是<a>),只是与它们的“选择器”不在同一嵌套级别。它不会这样工作......