使用 :hover 增加链接的字体大小会导致 Firefox 闪烁。为啥?

Posted

技术标签:

【中文标题】使用 :hover 增加链接的字体大小会导致 Firefox 闪烁。为啥?【英文标题】:Increasing the font-size of a link using :hover causes a flicker in Firefox. Why?使用 :hover 增加链接的字体大小会导致 Firefox 闪烁。为什么? 【发布时间】:2011-12-15 05:54:24 【问题描述】:

有问题的问题可以在这里找到:http://www.test.terribleobject.com/breathing-stillness/

鼠标悬停时,菜单中的第三个链接会闪烁。我认为它与换行有关,因为这个菜单项太长了,但我现在找不到解决方案。

问题在 Chrome 中并不明显。

我使用的是 Mac 和最新的 FF。

这是css:

.menu-item a 
      background: none repeat scroll 0 0 #FEFEFE;
      border: 1px solid #103A02;
      border-radius: 5px 50px 5px 5px;
      font-family: 'IM Fell English SC';
      font-size: 1.3em;
      padding: 0 20px 0 10px;
      text-decoration: none;
      text-transform: lowercase;
    

    .menu-item a:hover 
      background: #999;
      color: #fefefe;
      padding-left: 15px;
      font-size: 1.4em;
    

感谢您的帮助。我感觉答案很明显。

【问题讨论】:

gah XD 你一直在改变它。 XD 你能回到他们有不同宽度的地方吗? 抱歉,没想到大家这么快就回复了! 【参考方案1】:

悬停时不要更改字体大小,而是更改颜色。鼠标悬停时整个部分放大

【讨论】:

谢谢。但我正在寻找一种技术解决方案,而不是美学上的改变。【参考方案2】:

悬停时菜单项不够大,无法容纳文本。

你应该

    增加菜单项的width 减少font-size 的变化(比如从1.4em1.35em) 添加权限margin

更好的是,您应该放弃 font-size 更改,而只更改 background-color 和文本颜色。

仅供参考,我在 Chrome 中对此进行了测试,它也破坏了布局。

【讨论】:

【参考方案3】:

闪烁几乎肯定来自不同字体大小触发/取消触发:hover 效果的事实。我建议你不要在悬停时更改字体大小,而要进行更细微的更改,例如粗体或颜色更改

【讨论】:

以上是关于使用 :hover 增加链接的字体大小会导致 Firefox 闪烁。为啥?的主要内容,如果未能解决你的问题,请参考以下文章

IE8 字体大小在 :hover 上切换 - 仅限日语语言

增加悬停链接的字体大小会改变背景颜色大小,如何阻止这种情况?

为啥生成 pdb 文件会导致静态链接库的大小大幅增加?

html css hover 如何实现鼠标经过锚文本(不可点击字体)出现下划线?

如何在动画发生并更改 h1 的字体大小后修改 :hover 值?

rem适配,解决用户设置系统字体大小导致样式错乱问题