rgba情况下:border-color和background-color颜色叠加问题。

2,883 阅读1分钟

问题描述:border-colorbackground-color使用rgba颜色,border颜色会进行叠加。

<style>
    div {
        width: 400px;
        height: 400px;
        border: 20px solid ;
        border-color: rgba(52, 132, 254, 0.8);
        background-color: rgba(52, 132, 254, 0.8);
    }
</style>

<div></div>

解决方法:

1. border-color设置为transparent。(适合于borderbackground都是rgba且相同的情况)
div {
    width: 400px;
    height: 400px;
    border: 20px solid ;
    border-color: transparent;
    background-color: rgba(52, 132, 254, 0.8);
}

2.使用background-clip,指定一个框内的背景应该从哪里开始(border-boxpadding-boxcontent-box)。

// *推荐
div {
    width: 400px;
    height: 400px;
    border: 20px solid ;
    border-color: transparent;
    background-color: rgba(52, 132, 254, 0.8);
    -moz-background-clip: padding;     
    -webkit-background-clip: padding;  
    background-clip: padding-box;
}

参考:css-tricks.com/transparent…