我遇到了一个奇怪的 bug,我认为是这样的。我在应用滤镜于引用 SVG 元素的 clip-path 时遇到了问题,所以我开始进行调查。
问题并不是由滤镜引起的。我的 clip-path 是一个完整的矩形,它不需要滤镜就能正常工作,但花费了我一些时间才找出原因。请参考我在这里的帖子。
我发现在 Firefox 中根本没有应用 clip-path,即使没有滤镜也是如此。通过
由于 Codepen 和 jsfiddle 使用的是
问题并不是由滤镜引起的。我的 clip-path 是一个完整的矩形,它不需要滤镜就能正常工作,但花费了我一些时间才找出原因。请参考我在这里的帖子。
我发现在 Firefox 中根本没有应用 clip-path,即使没有滤镜也是如此。通过
<style></style>
在 HTML 中引用 SVG#id 才能让 clip-path 工作。如果使用 <link rel="stylesheet" href="style.css">
,虽然所有其他 CSS 都已经被应用,clip-path 却仍然无法工作。由于 Codepen 和 jsfiddle 使用的是
<style>
,我无法创建示例。请在此处下载文件以测试:Dropbox
我创建了一个外部 CSS 文件和一行内联样式。<style type="text/css">
XXX.triangle {
position: absolute;
width: 200px;
height: 200px;
margin: 10px;
background: red;
-webkit-clip-path: url(#absolute_path);
-moz-clip-path: url(#absolute_path);
-o-clip-path: url(#absolute_path);
clip-path: url(#absolute_path);
}
</style>
首先尝试在Firefox中按原样打开文件。你会看到一个红色的正方形。然后在HTML文件的<style>
中将XXX.traingle更改为.triangle并重新加载。哇,现在是一个红色的三角形。
这可能是什么原因?还有更重要的是,我如何在不定义<style>
的情况下解决这个问题?我需要构建组件,所以这会有些混乱。