【发布时间】:2017-11-20 19:51:22
【问题描述】:
我正在开发一个有形状的菜单,但在 Safari 中效果不佳。 在 Safari 中它会损坏布局,我不知道为什么。 如果我不使用 svg 标签而只使用 css 剪辑路径,它在 safari 和 chrome 中运行良好,但在 firefox 中运行良好。
CSS:
.menu {
width: 65%;
height: 40px;
background-color: red;
-webkit-clip-path: polygon(5% 0, 100% 0, 100% 100%, 0 100%, 0 100%);
clip-path: polygon(5% 0, 100% 0, 100% 100%, 0 100%, 0 100%);
-webkit-clip-path: url("#clipping");
clip-path: url("#clipping");
position: absolute;
right: 0px;
bottom: 0;
}
.menu:before {
content: '';
width: 99.8%;
height: 40px;
-webkit-clip-path: polygon(5% 0, 100% 0, 100% 100%, 0 100%, 0 100%);
clip-path: polygon(5% 0, 100% 0, 100% 100%, 0 100%, 0 100%);
-webkit-clip-path: url("#clipping");
clip-path: url("#clipping");
background: black;
display: block;
position: absolute;
top: 2px;
left: 2px;
right: 2px;
}
html:
<div class="menu">
<svg width='0' height='0'>
<defs>
<clipPath id="clipping" clipPathUnits="objectBoundingBox">
<polygon points="0.05 0, 1 0, 1 1, 0 1, 0 1" />
</clipPath>
</defs>
</svg>
</div>
谢谢
【问题讨论】:
-
部分支持是指支持内联 SVG 的形状和 url(#foo) 语法,但不支持外部 SVG 中的形状。 caniuse.com/#search=clip-path
-
那么,我该怎么做呢? @Rob
-
2020 年,Safari (13.1) 中的剪辑路径仍然存在问题且速度缓慢。至少现在支持不带前缀。
标签: html css cross-browser css-shapes