CSS3动画变换旋转在Firefox中不起作用

时间:2015-11-05 03:42:55

标签: html5 css3 css-transitions

我在codepen.io中找到了这个动画。一切都运行正常但是当我在firefox中测试它时,动画无效。

代码已经有浏览器前缀,所以我不知道什么在FF中不起作用。

<!DOCTYPE html>
<html>
<head>
<style> 

.loading {
    margin-left:auto;
    margin-right:auto;
    display:table;
    border-width:30px;
    border-radius:50%;
    -webkit-animation:spin 1s linear infinite;
    -moz-animation:spin 1s linear infinite;
    -o-animation:spin 1s linear infinite;
    animation:spin 1s linear infinite;
}
.style-1 {
    border-style:solid;
    border-color:#001e60 transparent
}
.style-2 {
    border-style:double;
    border-color:#001e60 transparent;
}
.style-3 {
    border-style:double;
    border-color:#001e60 #fff #fff;
}
@-webkit-keyframes spin {
    100% {
        -webkit-transform:rotate(359deg);
    }
}
@-moz-keyframes spin {
    100% {
        -moz-transform:rotate(359deg);
    }
}
@-o-keyframes spin {
    100% {
        -moz-transform:rotate(359deg);
    }
}
@keyframes spin {
    100% {
        transform:rotate(359deg);
    }
}
</style>
</head>
<body>

<div style="display: block;" class="loading-container">
        <span id="loadingIndicator" class="loading style-3"></span>
    </div>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

问题是.loading使用display: table;而没有实际指定宽度或高度。使用这样的表来暗示大小有点hacky。 Chrome正在以不同于Firefox的方式解释这些维度。最好使用css明确地给它一个大小。尝试将其更改为具有宽度和高度的块,如下所示:

.loading {
  margin-left:auto;
  margin-right:auto;
  display:block;
  border-width:30px;
  border-radius:50%;
  height: 5px;
  width: 5px;
  -webkit-animation:spin 1s linear infinite;
  -moz-animation:spin 1s linear infinite;
  -o-animation:spin 1s linear infinite;
  animation:spin 1s linear infinite;
}

BIN:https://jsbin.com/nedanayopu/edit?html,output