6

我试图从 Windows 8 ListView 控件中的 .win-container 元素(图块)中删除白色背景,以让背景显示出来。当我跟踪样式时,我可以看到白色背景正在应用以下规则......

.win-listview :not(.win-footprint).win-container

所以我为此写了自己的规则......

.win-listview :not(.win-footprint).win-container {
    background-color: none;
}

但这没有用。

一位朋友帮我弄清楚我可以使用...

.win-listview :not(.win-footprint).win-container {
    background-color: inherit;
}

这很好用。谁能告诉我为什么会这样?

4

1 回答 1

9

nonebackground-image属性的值,而不是background-color。由于它不是 的有效值background-color,因此忽略该声明,系统将继续使用默认的白色背景绘制您的图块。如果你想给你的瓷砖一个透明的背景,你需要使用background-color: transparent

.win-listview :not(.win-footprint).win-container {
    background-color: transparent;
}

(您也可以使用background: none, 但再次nonebackground-image隐含transparent的 for表示background-color。)

background-color: inherit只需告诉您的瓷砖采用(或继承ListView)与包含它们相同的背景颜色。这可能会或可能不会有没有明显背景颜色的明显效果。但是,它与具有透明背景不同(除非它ListView本身也具有透明背景,在您的情况下它可能没有)。

于 2012-08-27T19:22:44.963 回答