我试图从
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; }
这很有效.任何人都可以告诉我为什么在这个世界上是这样的?
解决方法
none是background-image属性的值,而不是background-color.由于它不是背景颜色的有效值,因此将忽略声明,系统将继续使用默认的白色背景绘制切片.如果你想给你的瓷砖一个透明的背景,你需要使用background-color:transparent而不是:
.win-listview :not(.win-footprint).win-container { background-color: transparent; }
(您也可以使用background:none,但是none再次表示背景图像,背景颜色隐含透明.)
background-color:inherit只是告诉你的瓷砖与包含它们的ListView相同的背景颜色(或inherit).这可能会或可能不具有没有明显背景颜色的明显效果.然而,它与具有透明背景不同(除非ListView本身也具有透明背景,在您的情况下它可能不具有).