border-color:rgba()边框在角落处重叠,颜色比预期的颜色更深

时间:2011-04-19 21:32:45

标签: css3 rgba

使用以下代码:

element{
    width:300px;
    border:9px solid;
    border-color:rgb(0,0,0);
    border-color:rgba(0,0,0, 0.7);
}

由于两个边框的叠加,我最终得到的是更暗的角落......我找到的唯一方法就是添加一个等于边框宽度的border-radius。还有其他工作吗?

我目前只在Chrome中测试过,我现在还没有其他浏览器可用。

4 个答案:

答案 0 :(得分:3)

在桌面上使用border-spacing,如下所示:

table
{
    border-collapse: separate;
    border-spacing: 0;
}

结合一些不错的CSS选择器来防止边框重叠(见下文)。这将适用于除最后一个之外的所有tds。

table td:not(:last-child)
{

}

请参阅Demo on jsFiddle

然后你可以使用rgba边框而不重叠。

答案 1 :(得分:2)

它不是很优雅,但您可以使用实线边框和不透明度值进行包裹<div>http://jsfiddle.net/4gutj/24/

<强> HTML:

<div class="opacity-wrapper">
  <div class="transparent-border">Foo</div>
</div>

<强> CSS:

.transparent-border {
    width:300px;
    font-size: 40px;
    padding: 10px;

    text-align: center;

    border:30px solid;
    border-color:rgb(0,0,0);
    border-color:rgba(0,0,0, 0.7);

    margin-bottom: 10px;
}

.opacity-wrapper {
    background-color: rgb(0, 0, 0);
    opacity: 0.7;

    padding: 30px;
    width:320px;
}

.opacity-wrapper div {
    padding: 10px;
    background-color: rgb(255, 255, 255);
    color: rgb(0, 0, 0);

    font-size: 40px;
    text-align: center;
}

答案 2 :(得分:2)

也不是很优雅,但作品是:

element{
    width:300px;
    border:9px solid;
    border-top-color: rgba(0,0,0, 0.7);
    border-bottom-color: rgba(0,0,0 0.7);
    border-right-color: rgba(1,1,1, 0.7);
    border-left-color: rgba(1,1,1 0.7);
}

颜色差异导致颜色以45%的角度相交。你也可以创建这样的斜面。

答案 3 :(得分:2)

由于大多数browsers support box-shadow,您可以像这样使用它:

box-shadow: 0 0 0 9px rgba(0, 0, 0, 0.7);