首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS clip-path在移动Safari上的作用类似于content-box

CSS clip-path在移动Safari上的作用类似于content-box
EN

Stack Overflow用户
提问于 2019-01-15 01:53:34
回答 1查看 431关注 0票数 4

我有一个容器,它是用clip-path切割的,有一些背景色。在所有支持clip-path的浏览器中都能完美工作,但移动Safari (可能桌面Safari也是如此,无法测试)。

https://codepen.io/Deka87/pen/PXVNgQ

HTML:

代码语言:javascript
复制
<!-- Container -->
<div></div>

<!-- Clip -->
<svg>
  <defs>
    <clipPath id="clip" clipPathUnits="objectBoundingBox">
      <path d="M 0 0 V 1 A 5 5 0 0 1 1 1 V 0 Z"></path>
    </clipPath>
  </defs>
</svg>

CSS:

代码语言:javascript
复制
div {
  min-height: 300px;
  background-color: gray;
  padding: 100px 0;
  -webkit-clip-path: url(#clip);
  clip-path: url(#clip);
}

svg {
  width: 0;
  height: 0;
  position: absolute;
}

Safari中的问题是,当应用clip-path时,容器的背景就像它的background-clip属性被设置为content-box一样,即它不会移到填充的后面,所以这些区域保持空白。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2020-01-17 04:25:13

我刚刚遇到了同样的问题,并能够通过向被裁剪的元素添加额外的包装器div并将填充移动到子元素中来解决它。这不是一个真正的修复,但让我继续前进。

HTML:

代码语言:javascript
复制
<!-- Container -->
<div class="parent">
  <div class="child">

  </div>
</div>

<!-- Clip -->
<svg>
  <defs>
    <clipPath id="clip" clipPathUnits="objectBoundingBox">
      <path d="M 0 0 V 1 A 5 5 0 0 1 1 1 V 0 Z"></path>
    </clipPath>
  </defs>
</svg>

CSS:

代码语言:javascript
复制
.parent {
  -webkit-clip-path: url(#clip);
  clip-path: url(#clip);
}

.child {
  background-color: gray;
  min-height: 300px;
  padding: 100px 0;
}

svg {
  width: 0;
  height: 0;
  position: absolute;
}

请参阅此处的示例:https://codepen.io/mprquinn/pen/8b1e4e6004e989491f294a8899a94ec7

希望这对你有帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54186766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档