如何防止 IE11 flexbox 在悬停时出现跳跃按钮?

Posted

技术标签:

【中文标题】如何防止 IE11 flexbox 在悬停时出现跳跃按钮?【英文标题】:How do I prevent IE11 flexbox from having jumpy buttons on hover? 【发布时间】:2016-09-14 05:08:19 【问题描述】:

我有一个带有按钮的 flexbox 布局。当用户将鼠标移到按钮上时,它们的位置会跳来跳去。

我的源代码很简单:

.flexy  
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  height: 200px;
<div class="flexy">
  <div>
    Content
  </div>
  <footer>
    <button>Button 1</button> <button>Button 2</button><br/>
    <button>Button 3</button> <button>Button 4</button><br/>
  </footer>
</div>

在两排按钮之间移动鼠标会导致大量移动。有什么办法可以防止这种情况发生吗?

【问题讨论】:

【参考方案1】:

给你的footer 一个min-heightflex-basis 值是页脚的实际高度。我在 IE11、Chrome、Firefox、Safari 中对此进行了测试,他们都接受了这个修复。

选项 1

footer 
  flex-basis: 46px;

选项 2

footer 
  min-height: 46px;

【讨论】:

【参考方案2】:

我不确定是什么导致了问题。但我发现,如果您只是为按钮添加边框,移动就会停止。

.flexy  
  display:flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  height: 200px;


button 
  border: 1px solid #777;
  padding: 5px;            /* optional */
  margin: 5px;             /* optional */
<div class='flexy'>
  <div>
    Content
  </div>
  <footer>
    <button>Button 1</button> <button>Button 2</button><br/>
    <button>Button 3</button> <button>Button 4</button><br/>
  </footer>
</div>

Revised Demo

【讨论】:

谢谢,这比另一个更灵活,不需要知道具体的高度。我将它与仅限 IE 的 @media 查询结合使用,这样其他浏览器按钮不会受到影响。

以上是关于如何防止 IE11 flexbox 在悬停时出现跳跃按钮?的主要内容,如果未能解决你的问题,请参考以下文章

IE11 flexbox防止文本换行? [关闭]

如何在 IE11 中修复 Flexbox 粘滞页脚

如何在 IE11 中使用 flexbox 制作粘性页脚?

Flexbox定位IE11 [重复]

在 IE11 和 IE10 中与 flexbox 垂直对齐

html 从Envira Gallery图像中删除title属性,以防止它在悬停时出现。