首頁 > web前端 > css教學 > 為什麼線性漸層上的透明邊框會導致顏色交換和扁平化?

為什麼線性漸層上的透明邊框會導致顏色交換和扁平化?

Patricia Arquette
發布: 2024-11-21 19:48:22
原創
360 人瀏覽過

Why Does a Transparent Border on a Linear Gradient Cause Color Swapping and Flattening?

漸變背景上的透明度:研究奇怪的邊框效果

向具有線性漸變背景的元素添加透明邊框時,出現異常現象。左右邊緣的顏色看起來不正確,就像它們已被交換一樣。此外,這些部分呈現出扁平的外觀。

HTML 片段:

<div class="colors"></div>
登入後複製

CSS 設定:

.colors {
    width: 100px;
    border: 10px solid rgba(0, 0, 0, 0.2);
    height: 50px;
    background: linear-gradient(
        to right, 
        #78C5D6,
        #459BA8,
        #79C267,
        #C5D647,
        #F5D63D,
        #F08B33,
        #E868A2,
        #BE61A5);
}
登入後複製

原因效果:

出現此問題是因為漸變的起點和終點位於填充框的邊緣。然而,邊框是在填充框之外繪製的。由於背景在每一側的 border-box 上重複出現,因此邊框顯得很奇怪。

使用box-shadow 的解決方案:

複製邊框的視覺效果如果沒有這個問題,請考慮使用box-shadow:

box-shadow: inset 0 0 0 10px rgba(0, 0, 0, 0.2);
padding: 10px;
登入後複製

由於box-shadow不佔空間,因此必須調整

Padding-Box 和Border-Box 示意圖:

[padding-box 和border-box 的圖片]

[padding-box 和border-box 的圖片][padding-box 和border-box 的圖片]

[padding-box 和border-box 的圖片]

現場示範:探索此JSFiddle中更正的行為: http://jsfiddle.net/ilpo/fzndodgx/5/

以上是為什麼線性漸層上的透明邊框會導致顏色交換和扁平化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板