【发布时间】:2015-07-02 15:14:30
【问题描述】:
我有一个网页,我在其中使用了应用于页面的 HTML 元素之一的 SVG 剪辑路径。
SVG 元素:
<svg height="0" width="0">
<defs>
<clipPath id="clip">
<path d="M150 0 L75 200 L225 200 Z" />
</clipPath>
</defs>
</svg>
剪切路径应用到的 HTML 元素
<div id="clipMe"> </div>
定义剪辑的 CSS
#clipMe {
clip-path: url(#clip);
-webkit-clip-path: url(#clip);
width: 200px;
height: 200px;
background-color: red;
}
在同一个页面上,我有各种元素,其中一些是相对定位的:
<div style="position: relative">
<strong>My parent is relative</strong>
</div>
仅在 Safari (8.0.4) 中,只要从 #clipMe div 到 clipPath(在 SVG 元素内)的链接完好无损,就不会显示这些相对定位的元素。
最新版本的 FF 和 Chrome 显示正常。
将position: 属性更改为非相对属性会按预期显示所有内容。
禁用剪切路径(通过同时删除 SVG 元素或从 CSS 中删除 clip-path: 属性)也会按预期显示所有内容。
同样,这只是 Safari。我花了一段时间才将其隔离为关于 SVG 剪切路径和position: relative,所以我猜可能还有其他情况会产生类似的结果。
有没有人遇到过这个问题或者有什么建议让那些相对定位的 s 显示出来?
编辑
这可能是Mac的事情。虽然它在 OSX 的 Chrome 和 Firefox 中按预期显示,但在 iOS 上的任何浏览器中都不会显示相对定位的 DIV。
有什么想法吗?
【问题讨论】:
-
我不同意标题更改。这意味着应用了剪辑路径的元素未显示。不是这种情况;剪辑的元素显示正常。没有显示的是页面上带有
position:relative的另一个元素。我的 .02.
标签: css svg safari css-position clip-path