CSS 由于 "display: inline;",悬停效果在 Firefox 中不起作用
CSS Hover-Effect isn't working in Firefox because of "display: inline;"
我的网站导航有问题。有一个用 "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);
}
感谢您的回答!
如果您将 #nav li
也设置为 display: inline-block;
,应该不会有什么不同
我的网站导航有问题。有一个用 "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);
}
感谢您的回答!
如果您将 #nav li
也设置为 display: inline-block;