我想知道是否有一种方法可以检测浏览器是否能够使用CSS来动画SVG元素。
简单回答:是的,正如@jhpratt所说。
你可以只用CSS检测浏览器是否支持CSS功能。 @supports
CSS规则允许你指定依赖于浏览器对一个或多个特定CSS功能的支持的声明。这被称为特性查询。
例如:
@supports (display: flex) {
div {
display: flex;
}
}
@supports not (display: flex) {
div {
float: right;
}
}
MDN链接: https://developer.mozilla.org/de/docs/Web/CSS/@supports
长答案:
你总会遇到一些跨浏览器的问题。你遇到的问题困扰着每个Web开发人员。但是,仍然有方法可以解决这个浏览器支持问题:
1. 您可以检查“can I use”以了解兼容性:
链接:http://caniuse.com/
建议查找任何可疑的功能,例如动画。
2. 在您的工作流程中使用自动前缀:
借助自动前缀,您大多数时候不必担心使用带有前缀的CSS(如-moz-,-webkit-等)。这个小助手会为您完成这项任务,您甚至可以告诉某些自动前缀要支持哪些浏览器。
3. 使用第三方库:
有许多库可以用来检测浏览器和版本。如果你想确保你的动画是安全可用的,你可以简单地使用这些库提供的动画,并在它们各自的网站上查看兼容性。
一些大牌:
还有很多,只要在全球网络中搜索。
4. 使用CSS Hack检测特定的浏览器:
可以使用所谓的CSS Hack。它们是特定的CSS调用,仅适用于某些浏览器。
一些例子:
Internet Explorer/Edge 8 only: @media \0screen {}
firefox ≥ 3.6 only: @media screen and (-moz-images-in-menus:0) {}
Opera ≤ 9.27 AND Safari 2: html:first-child .selector {}
你可以在这里查找更多的Browserhacks:
http://browserhacks.com/
结论:
虽然可以检测特定的浏览器,但仅使用CSS无法检测浏览器是否支持给定的功能。这就是为什么你总是会遇到一些浏览器兼容性问题的原因。
希望这能帮到你。
问候