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、ここでも暗黙の for でnone表します。)background-imagetransparentbackground-color

background-color: inheritタイルを含むと同じ背景色を取る (または継承する)ようにタイルに指示するだけListViewです。これにより、明確な背景色がないという明らかな効果がある場合とない場合があります。ただし、透明な背景を持つことと同じではありません(ListViewそれ自体にも透明な背景がある場合を除きますが、あなたの場合はおそらくそうではありません)。

于 2012-08-27T19:22:44.963 に答える