css - 为什么我在悬停时变换内联元素,它会回到原来的位置?

标签 css

我尝试在鼠标悬停时转换元素,就像这样:

span{
  transition: transform 0.35s;
}
span:hover{
  transform: translateY(30px);
}   
<span>test</span>

在 IE 上,它运行良好,但在 Chrome 和 Firefox 上不正常。它会回到原来的位置。

我发现如果将 display:block 添加到 span 中,它会很好(在 Firefox 上也没有什么问题),但为什么呢?有更好的方法吗?

最佳答案

我认为它返回到原始位置是因为它物理移动并且鼠标在翻译后不再悬停在元素上。

几个想法:

1) 如果您希望元素在鼠标悬停时保持移动但在鼠标离开时返回,也许您可​​以在 padding 而不是 translate,这样元素内容将移动,但 DOM 本身中的框将保留以保持 :hover 效果

2) 如果你希望元素停留在它的位置并且在悬停后不返回,你可能想使用 Javascript 在悬停后向元素添加一个类并为该类设置样式

祝你好运!

关于css - 为什么我在悬停时变换内联元素,它会回到原来的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31544429/

相关文章:

css - Bootstrap IE7 网格填充添加到边界框

html - 哪些浏览器支持input属性-multiple

css - 3列div css

html - 如何将垂直文本水平居中对齐?

javascript - 使文本在单击按钮时出现/消失

html - HTML 中的数据格式不正确

HTML/CSS 这种在媒体查询中使用断点的概念不正确吗?

css - 如何制作第一列有粘性的 Angular Material 表

html - 下拉菜单不稳定

javascript - 用javascript替换所有选定的元素