边框颜色:rgba() 边框在角处重叠,颜色比预期更深

发布于 2024-11-02 12:10:38 字数 292 浏览 4 评论 0原文

使用以下代码:

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

由于两个边框的重叠,我最终得到的角更暗......我发现解决此问题的唯一方法是添加等于宽度的 border-radius的边界。还有其他解决方法吗?

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

Using the following code:

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

I end up with corners that are darker due to the overlay of the two borders... the only way I have found around this is to add a border-radius equal to the width of the border. Are there any other work arounds?

I have only tested in chrome at the moment, I don't have my other browsers available right now.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

流心雨 2024-11-09 12:10:38

在表格上使用 border-spacing ,如下所示:

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

与一些漂亮的 CSS 选择器结合使用,以防止边框重叠(见下文)。这将适用于除最后一项之外的所有 td。

table td:not(:last-child)
{

}

请参阅 jsFiddle 上的演示

然后您就可以使用不重叠的 rgba 边框。

Use border-spacing on your table like so:

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

Combine with some nice CSS selectors to keep borders from overlapping (see below). This will apply to all tds except the last one.

table td:not(:last-child)
{

}

See Demo on jsFiddle

Then you can use rgba borders without overlap.

说不完的你爱 2024-11-09 12:10:38

它不是很优雅,但您可以制作一个带有实心边框和不透明度值的包装

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;
}

It's not very elegant, but you could make a wrapping <div> with a solid border and an opacity value: 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;
}
病女 2024-11-09 12:10:38

同样不是很优雅但有效的是:

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% 的角度相遇。您也可以像这样创建斜角。

Also not very elegant but works is:

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);
}

The color differences cause the colors to meet at a 45% angle. You can also create bevels like this.

享受孤独 2024-11-09 12:10:38

由于大多数 浏览器支持 box-shadow,您可以像这样使用它:

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

Since most browsers support box-shadow, you can use it like that:

box-shadow: 0 0 0 9px rgba(0, 0, 0, 0.7);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文