由于“display: inline;”,CSS 悬停效果在 Firefox 中不起作用

Posted

技术标签:

【中文标题】由于“display: inline;”,CSS 悬停效果在 Firefox 中不起作用【英文标题】:CSS Hover-Effect isn't working in Firefox because of "display: inline;" 【发布时间】:2016-03-25 10:46:09 【问题描述】:

我的网站导航出现问题。有一个用“display: inline;”定义的按钮,因为否则按钮不会彼此水平显示。

然后我有一个动画,一个悬停效果。那里必须是“display: inline-block;”,因为没有它 Firefox 就不会播放动画。

问题是我已经定义了“display: inline;”首先,Firefox 会忽略“display: inline-block;”并且动画不播放。问题只出在 Firefox 中,不在 Chrome 中,甚至在 IE 中也没有。

html 代码如下:

 <div id="nav">
  <a href="projekte.html"><li class="sweep">PROJECTS</li></a>
</div>

这是 CSS:

#nav 
    float: right;
    width: auto;
    font-size: 25px;
    margin: 12px 10px 0px 0px;


#nav li 
    list-style-type: none;
    display: inline;
    margin-right: 20px;
    padding: 5px 10px 5px 10px;


#nav a 
    text-decoration: none;
    color: #3a96d3;


.sweep 
    display: inline-block;
    vertical-align: middle;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    box-shadow: 0 0 1px rgba(0, 0, 0, 0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    -webkit-transition-property: color;
    transition-property: color;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;


.sweep:before 
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #3a96d3;
    -webkit-transform: scaleY(0);
    transform: scaleY(0);
    -webkit-transform-origin: 50% 100%;
    transform-origin: 50% 100%;
    -webkit-transition-property: transform;
    transition-property: transform;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    -webkit-transition-timing-function: ease-out;
    transition-timing-function: ease-out;
   

.sweep:hover, .hvr-sweep-to-top:focus, .hvr-sweep-to-top:active 
    color: white;


.sweep:hover:before, .hvr-sweep-to-top:focus:before, .hvr-sweep-to-top:active:before 
    -webkit-transform: scaleY(1);
    transform: scaleY(1);

感谢您的回答!

【问题讨论】:

【参考方案1】:

如果您将#nav li 也设置为display: inline-block;,应该不会有什么不同

【讨论】:

谢谢,我想我只是使用了太旧的 Firefox 版本

以上是关于由于“display: inline;”,CSS 悬停效果在 Firefox 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

CSS display 属性详解

CSS display 属性详解

如何理解CSS中的display:inline-block属性?

css - 在带有 display:inline-block 的元素上添加垂直空间 [重复]

CSS笔记display:inline-block的使用

面向属性的CSS命名