无法使用“none”覆盖背景颜色,仅使用“inherit”

时间:2012-08-27 19:11:27

标签: css css3 windows-8

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

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

这很有效。任何人都可以告诉我为什么这个世界是这样的?

1 个答案:

答案 0 :(得分:9)

nonebackground-image属性的值,而不是background-color。由于它不是background-color的有效值,因此将忽略该声明,系统将继续使用默认的白色背景绘制切片。如果您想为瓷砖提供透明背景,则需要使用background-color: transparent代替:

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

(您也可以使用background: none,但none代表background-image代表transparent隐含background-color。)

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