【问题标题】:Change Div Tag Properties on Hover悬停时更改 div 标签属性
【发布时间】:2011-12-27 06:57:53
【问题描述】:

当您将鼠标悬停在不同的 div 标签上时,是否可以更改 div 标签的属性?

例如,

#tag1 {

/* properties */
}
#tag1 a:hover {
/* new properties */
}


#tag2 {
/* contains a link */
}

其中 tag1 经历了变化,但 tag2 包含发生悬停的位置(或链接)。

【问题讨论】:

  • 只有当您希望更改的元素是悬停触发它的元素的相邻兄弟元素时,这才有可能。是这样吗?
  • 这取决于你的HTML中#tag1#tag2之间的关系。例如,如果#tag2 跟在#tag1 之后,则可以使用#tag1:hover + #tag2#tag1:hover ~ #tag2
  • 你应该可以用 javascript 做到这一点,比如<a href="..." class="..." onmouseover="..." onmouseout="..."
  • 我可以制作更改父 div 标签的元素,其中 tag2 嵌套在 tag1 中。

标签: javascript html css hover


【解决方案1】:

Here 是一个示例,说明当您使用 CSS 将鼠标悬停在单独的元素上时可以修改元素。

如您所见,它仅限于修改子元素和紧接着的兄弟元素。在前者中,当您将鼠标悬停在整个事物上时,您可以选择 div 的任何子项进行修改。在后者中,divspan 之间的 <br> 标签会破坏这种关系。

编辑:我还忘记了您可以选择 任何 succeeding 元素与触发悬停事件的元素共享同一父元素~ 选择器。 Here 是一个更新的小提琴,解释了这一点。在这种情况下,两者之间可能存在由悬停事件连接的元素,它们的关系不会因此而中断。在 jsfiddle 的情况下,所有元素都共享 body 元素作为它们的父元素,因此通用兄弟选择器 (~) 能够选择它们。

目前,CSS 中没有父选择器。如需进一步解释,请查看this 答案(更深入的解释,this 也不错)。

这可以使用 Javascript 来完成,但是,它甚至可以让您选择没有直接关系的其他元素(父母、孩子或相邻的兄弟姐妹)。

【讨论】:

  • 不是任何元素共享同一个父元素,而是任何元素在它之后在同一个父元素中,无论是否立即。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-02
  • 2014-06-17
  • 1970-01-01
  • 1970-01-01
  • 2019-11-27
  • 2020-04-18
  • 2021-10-03
相关资源
最近更新 更多