尝试在opera 12浏览器上运行html5文件时出现以下错误:
-webkit-transition是一个未知的属性
-webkit-transition:opacity 0.5s ease-in-out 0s;
----------------------- ^ Linked-in stylesheet mycsspage.css:21
如何解决这个问题?
感谢
斯纳
答案 0 :(得分:6)
如果属性以-webkit开头,则表示您正在使用一些实验性代码,这些代码通常只能在基于WebKit的浏览器(Safari,Chrome)中使用,并在其他任何地方导致错误或警告。
在注意到这个错误并提出问题时你已经做了正确的事情 - 现在你可以学习一些关于如何开发CSS以及如何安全地使用实验和即将推出的功能的简单方法。
首先:为什么这段代码是“实验性的”?这是因为经验丰富的Web开发人员和计算机专家坐在一起为CSS计划新功能仍在试图弄清楚它应该如何正常工作。随着时间的推移,他们尝试不同的关键字和语法(讨论细节,如“它应该说”缓入“或”进出“?')。在这样做的同时,他们还希望在现实世界中进行一些测试并获得真实开发人员的反馈,因此他们鼓励像Chrome和Opera这样的网络浏览器支持未完成的内容 - 但使用前缀。前缀-webkit-则表示“这是一个临时实现,我们不确定任何其他浏览器是否会理解”缓入“指令,因为我们还没有完成决定,但您可以将其测试为只要您了解它是暂时的,如果我们改变主意,您可能必须稍后返回并修复您的代码“。
要正确执行此操作,您需要对此CSS功能是否仍处于实验阶段进行一些研究。您正在尝试使用CSS转换,因此您可能会看一下这个:
http://caniuse.com/#feat=css-transitions
在这里,您可以看到浏览器和版本的表格。您可以看到哪些版本需要前缀,例如-webkit-, - ms-,-moz-或-o-(分别适用于Safari / Chrome,Internet Explorer,Firefox和Opera)。
在这种情况下,最新版本的Internet Explorer,Firefox和Opera支持这个CSS指令,不带前缀,这基本上意味着“我们认为我们现在已经完成了讨论,非常确定它是永远都是这样的。如果你现在只是写'过渡',你就不必回来修改你的代码,因为我们改变了主意。“
另一方面,基于WebKit的浏览器仍然需要-webkit-前缀。所以你应该做的是确保你添加两次这个指令 - 一次使用-webkit-前缀,然后是一行不带前缀。像这样:
-webkit-transition: opacity 0.5s ease-in-out 0s;
transition: opacity 0.5s ease-in-out 0s;
如果您觉得非常彻底,并且想要支持较旧的Firefox和Opera版本,您还可以添加-moz和-o-行。
如果您确保代码看起来像这样,您现在可以忽略警告。你已经处理了它警告你的问题。