为啥给 div 一个背景颜色在其边框上绘制?

Posted

技术标签:

【中文标题】为啥给 div 一个背景颜色在其边框上绘制?【英文标题】:Why does giving a div a background color paint over its border?为什么给 div 一个背景颜色在其边框上绘制? 【发布时间】:2021-01-23 23:20:55 【问题描述】:

目前,我可以在 div 周围设置边框,也可以在 div 内部设置背景颜色,但不能同时使用。通过在代码隐藏中添加边框,如下所示:

gadsDiv.Attributes.Add("style", "border: 2px solid blue");

...我得到了边框:

但如果我也想要背景颜色:

gadsDiv.Attributes.Add("style", "background-color: lightyellow");

...我得到了背景颜色,但失去了边框:

为什么我不能有我的背景颜色和边框呢?

【问题讨论】:

【参考方案1】:

gadsDiv.Attributes.Add() 将覆盖之前分配的属性。

试试这个:

gadsDiv.Attributes.Add("style", "background-color: lightyellow; border: 2px solid blue");

【讨论】:

【参考方案2】:

看起来您正在覆盖第一个样式。而是将所有样式添加到 @abney317 所说的相同属性。 CSS 从不隐藏背景颜色的边框,除非它是相同的颜色。这是具有相同颜色和不同颜色的背景和边框的示例。 使用边框,您可以添加内边框。您还可以使用 outline 属性添加外边框。

#box1
width: 200px;
height: 200px;
background: red;
border-top: 5px solid red;
border-left: 5px solid blue;
outline: 5px solid green;
<div id="box1">
</div>
<div id="box2">
</div>

【讨论】:

以上是关于为啥给 div 一个背景颜色在其边框上绘制?的主要内容,如果未能解决你的问题,请参考以下文章

如何给一个div设置两个颜色不同的边框?

CSS中div背景与边框 颜色设置无效

CSS中div背景与边框 颜色设置无效

CGContextClearRect 导致背景颜色为黑色

div部分设置边框

我在外层div里面已经设置了背景颜色为白色,为啥里面的div撑开后,ie8显示的时候背景颜色没有了!