如何在悬停时更改文本框内容

2022-01-13 00:00:00 textbox hyperlink hover html css

我无法弄清楚如何根据悬停在哪个链接上来更改文本框的内容.我可以让它与最接近 div 的任何一个一起工作,但其他链接似乎没有效果.但是,我不想在链接之间插入文本,也不想创建多个文本框.我的主要目标是让链接始终位于同一个位置,当您将鼠标悬停在它们上方时,下方的文本框将显示正确的内容.

I am having trouble trying to figure out how I can make a text box change content depending on what link is being hovered over. I can get it to work with which ever one is closest to the div but the other links seem to have no effect. I do not however want to have text being inserted in between the links nor do I want to create several text boxes. My main goal is to have the links always in the same place and when you hover over them a text box underneath will display the correct content.

这里有一些代码和一个 JSFiddle 我放在一起帮助更好地说明我的问题:JSFiddle

Here is some code and a JSFiddle I threw together to help better illustrate my question: JSFiddle

HTML:

<a class="one" href="#">one</a>
<a class="two" href="#">two</a>
<a class="three" href="#">three</a>

<div class="element">hello</div>

CSS:

.element {
     display: none;
}

a:hover + .element {
     display: block;
}

推荐答案

您需要以下 HTML 标记:

You need the follwing HTML mark-up:

<a href="#" class="a-1">one</a>
<a href="#"class="a-2">two</a>
<a href="#"class="a-3">three</a>

<div class="element-1">hello one</div>
<div class="element-2">hello two</div>
<div class="element-3">hello three</div>

然后应用以下 CSS:

and then apply the following CSS:

.element-1, .element-2, .element-3{
     display: none;
}
.a-1:hover  ~ .element-1 {
     display: block;
}
.a-2:hover  ~ .element-2{
     display: block;
}
.a-3:hover  ~ .element-3 {
     display: block;
}

查看演示:http://jsfiddle.net/audetwebdesign/p7WUu/

CSS 略有重复,但可以正常工作,不需要 JavaScript.

The CSS is slightly repetitive but it works and no JavaScript required.

需要兄弟组合符 (~) 来挑选兄弟元素,请参阅参考.

The sibling combinator (~) is needed to pick out sibling elements, see reference.

参考:http://www.w3.org/TR/selectors/#兄弟组合器

相关文章