2012-08-27 22 views
6

Estaba intentando eliminar el fondo blanco de los elementos .win-contenedor (los mosaicos) en un control ListView de Windows 8 para mostrar el fondo . Cuando tracé los estilos, pude ver que el fondo blanco se iba a aplicar la siguiente regla ...No puedo anular el color de fondo con "ninguno", solo con "heredar"

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

así que escribí mi propia regla para que así ...

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

Pero eso no funcionó.

Un amigo me ayudó a entender que podría utilizar ...

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

y que funciona muy bien. ¿Alguien puede decirme por qué en el mundo esto es así?

Respuesta

9

none es un valor de la propiedad background-image, no de background-color. Como no es un valor válido de background-color, la declaración se ignora y el sistema continuará dibujando las teselas con el fondo blanco predeterminado. Si desea dar a sus azulejos de un fondo transparente, es necesario utilizar background-color: transparent lugar:

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

(También puede utilizar background: none, pero de nuevo none represente background-image con una implícita transparent para background-color.)

background-color: inherit simplemente le dice a sus mosaicos que se encarguen (o inherit) del mismo color de fondo que el ListView que los contiene. Esto puede o no tener un efecto aparente de no tener un color de fondo distinto. Sin embargo, no es lo mismo que tener un fondo transparente (a menos que el ListView mismo también tenga un fondo transparente, que en su caso probablemente no lo haga).

+1

Gracias a un millón. No sabía sobre el valor de color 'transparente'. –

Cuestiones relacionadas