首頁 >web前端 >css教學 >為什麼 CSS3 `border-radius` 在 Chrome/Opera 中溢出,如何修復?

為什麼 CSS3 `border-radius` 在 Chrome/Opera 中溢出,如何修復?

Susan Sarandon
Susan Sarandon原創
2024-12-26 17:17:13515瀏覽

Why Does CSS3 `border-radius` Overflow in Chrome/Opera, and How Can It Be Fixed?

如何解決Chrome/Opera 中CSS3 圓角溢位問題

在某些情況下,使用CSS3 的b-order-radius 屬性建立圓角父div 上的角可能會導致Chrome 和Opera 瀏覽器中的內容溢出。當父級相對或絕對定位時,就會出現此問題。

原始方法

以下程式碼示範了Chrome/Opera 中的問題:

#wrapper {
  width: 300px;
  height: 300px;
  border-radius: 100px;
  overflow: hidden;
  position: absolute;
}

#box {
  width: 300px;
  height: 300px;
  background-color: #cde;
}

這種方法適用於Firefox 和IE9,但無法屏蔽溢出的內容Chrome/Opera。

改進的解決方案

解決方案涉及將WebKit CSS Mask 添加到#wrapper 元素:

#wrapper {
  width: 300px;
  height: 300px;
  border-radius: 100px;
  overflow: hidden;
  /* This fixes the overflow:hidden in Chrome/Opera */
  -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);
}

此方法採用單像素PNG 映像來定義一個CSS 遮罩來屏蔽溢出的內容。有效解決Chrome/Opera中的溢出問題,保持圓角。

以上是為什麼 CSS3 `border-radius` 在 Chrome/Opera 中溢出,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn