解决Safari以及iOS上的其他浏览器子元素不受border-radius作用的问题

解决Safari以及iOS上的其他浏览器子元素不受border-radius作用的问题

💡 原文中文,约1400字,阅读约需4分钟。
📝

内容提要

Safari浏览器中的overflow: hidden和border-radius可能无法限制子元素超出边界的bug,可以通过生成堆叠上下文的CSS属性解决。

🎯

关键要点

  • 在 Safari 浏览器中,设置 overflow: hidden 和 border-radius 的父元素可能无法限制子元素超出边界。
  • 即使在父元素中设置了 overflow: hidden 和 border-radius,子元素仍可能在 border-radius 范围之外显示。
  • 该问题在 macOS Safari 和 iOS 上的 Chrome 等浏览器中均可复现。
  • 问题的原因似乎是 Safari(WebKit)的一个 bug,称为 Bug 140535。
  • 通过添加生成堆叠上下文的 CSS 属性可以解决该问题。
  • 生成堆叠上下文的方法包括:设置 isolation: isolate、设置 position 和 z-index、设置 transform。
  • 推荐使用 isolation: isolate 方法来生成堆叠上下文。
➡️

继续阅读