- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有下面的 Sass 代码片段,效果很好,但我想知道我是否需要为我的转换属性添加前缀,如果需要,怎么办? (如果不是,为什么不呢?)
@mixin expand-o-band() {
0% { opacity: 1; transform: scale(1); }
100% { opacity: 0; transform: scale(2); }
}
@-webkit-keyframes expand-o-band { @include expand-o-band(); }
@-moz-keyframes expand-o-band { @include expand-o-band(); }
@-o-keyframes expand-o-band { @include expand-o-band(); }
@keyframes expand-o-band { @include expand-o-band(); }
.circle-thing {
-webkit-animation: expand-o-band 1.5s infinite; /* Safari 4+ */
-moz-animation: expand-o-band 1.5s infinite; /* Fx 5+ */
-o-animation: expand-o-band 1.5s infinite; /* Opera 12+ */
animation: expand-o-band 1.5s infinite; /* IE 10+, Fx 29+ */
}
请注意,我不是在询问使用自动前缀等工具来为我执行此操作,而是我需要向我的混合中添加什么才能使其与最广泛的浏览器兼容?
最佳答案
这是标准化功能的供应商前缀变得极度问题的情况之一,因为您需要考虑不同浏览器的不同版本中不同功能的所有不同前缀和/或无前缀实现.
真是一口。然后你必须组合这些的各种排列。多么一把。
简而言之,您需要弄清楚每个浏览器的哪些版本需要为每个单独的属性添加前缀,除非您不介意膨胀,否则您需要为各个浏览器应用不同的前缀。幸运的是,出色的最新资源 caniuse.com 使这部分变得非常容易;这是 2D transforms 的兼容性表和 animations .
好消息是浏览器在实现转换和动画的稳定(即无前缀)实现方面通常非常一致:
IE9 实现了 -ms-transform
,并且在 IE10 中才开始使用 RTM 的稳定无前缀语法以及无前缀转换实现动画。 IE 是唯一一个在动画中添加前缀转换毫无意义的浏览器,因为除了作为唯一一个需要转换前缀的浏览器之外,IE9 根本无法识别 CSS 动画。
当然,这不会阻止您在其他地方使用 -ms-transform
并将动画作为一种渐进增强的形式,但是将它包含在 动画中是没有意义的.此外,您可能已经阅读过关于 @-ms-keyframes
前缀的内容,但它仅用于 IE10 的预发布版本,该版本早已过期并且无论如何都不会再运行。
Firefox 早在 3.5 版就提供了 -moz-transform
,动画在版本 5 中出现的时间要晚得多,然后在版本 16 中同时删除了这两个功能的前缀。
如今,基于 WebKit 的浏览器(包括 Opera 15 及更高版本)仍然需要 -webkit-
前缀来显示动画,而转换仅在最新版本的 Chrome 中取消了前缀。这两个功能都需要前缀。
Opera 12.00 是唯一使用@-o-keyframes
的版本。 -o-transform
也用于该版本。 12.10 删除了两者的前缀,然后它直接退化为通过移动到版本 15 中的 WebKit 再次要求这两个前缀,如上所述。
不幸的是,由于您的 CSS 动画中有所有这些前缀,并且您对所有这些都使用了相同的 mixin,因此您的 CSS 转换需要同样多的前缀才能使带前缀的动画真正有用:
@mixin expand-o-band() {
0% {
opacity: 1;
-webkit-transform: scale(1);
-moz-transform: scale(1);
-o-transform: scale(1);
transform: scale(1);
}
100% {
opacity: 0;
-webkit-transform: scale(2);
-moz-transform: scale(2);
-o-transform: scale(2);
transform: scale(2);
}
}
如果你使用一个带有前缀参数的混入,并在你的每个 @keyframes
规则中将适当的前缀传递给混入,你可以大大减少膨胀,但这可能超出了这个问题(但主要是因为我不太了解 Sass)。
关于css - 你应该如何为 CSS3 动画中的变换属性添加前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28545533/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!