¿Es background-color: none CSS válido?

432

¿Alguien puede decirme si el siguiente CSS es válido?

.class {
    background-color:none;
}
NarfkX
fuente
10
El validador a menudo puede responder a este tipo de preguntas.
thirtydot
10
Puede confundirse con background:none;, que es válido y que establece el color de fondo en transparente.
Sr. Lister

Respuestas:

551

Probablemente desee transparentya noneque no es un background-colorvalor válido .

La especificación CSS 2.1 establece lo siguiente para la background-colorpropiedad:

Value: <color> | transparent | inherit

<color>puede ser una palabra clave o una representación numérica de un color. Las colorpalabras clave válidas son:

aguamarina, negro, azul, fucsia, gris, verde, lima, marrón, azul marino, oliva, naranja, morado, rojo, plateado, verde azulado, blanco y amarillo

transparenty inheritson palabras clave válidas por derecho propio, pero noneno lo son.

James Allardice
fuente
25
Si. Dado que el valor inicial es transparent, eso es lo que usa si desea desactivar el color de fondo.
Sr. Lister el
1
ninguno de estos se restablecerá a un valor anterior (es decir, si lo establece otra regla css :(
pstanton
2
@pstanton en su caso, debe dar color de fondo: ¡transparente! importante;
herr
Esto me recuerda a tratar de usar font-color cuando comencé con la codificación. Por supuesto que colorno font-color. Tiene mucho sentido cada vez que otra propiedad de fuente tiene fontfrente a él ...
serraosays
@herr Pero aún así, como dijo pstanton, ¡establecer el color de fondo transparente anularía las propiedades css anteriores! ¿Hay alguna forma de eliminar esta propiedad de color de fondo de modo que tome la propiedad CSS de la anterior?
SE_User
159

No, úsalo transparenten su lugar none. Vea el ejemplo de trabajo aquí en este ejemplo si cambia transparenta noneno funcionará

usar como .class { background-color:transparent; }


Donde .class es lo que llamarás tu clase transparente.

Jitendra Vyas
fuente
En mi ejemplo, es completamente opuesto. Si no cambia ninguno a transparente, no funcionará. Realmente no necesito usar ninguno: jsfiddle.net/BkAad
Hrvoje Golcic
En su ejemplo, cambie a body *: not (.exception) {background-color: transparent} Debe eliminar el! Important ya que eso obliga a todos los demás dentro a tener esa propiedad. Y en el interior li (s) en lugar de usar la propiedad de color de fondo que la del fondo solo para el color de fondo.
yveslebeau
67

La respuesta es no.

Incorrecto

.class {
    background-color: none; /* do not do this */
}

Correcto

.class {
    background-color: transparent;
}

background-color: transparentlogra lo mismo con lo que querías hacer background-color: none.

Sajidur Rahman
fuente
7
.class {
    background-color:none;
}

Esta no es una propiedad válida. El validador de W3C mostrará el siguiente error:

Error de valor: color de fondo ninguno no es un valor de color de fondo: ninguno

transparentpuede haber sido seleccionado como mejor término en lugar de 0o nonevalores durante el desarrollo de la especificación de CSS.

Barun
fuente
2
Y esto repite lo que James dijo hace dos años y medio, pero en un formato no cortado y pegable. ; ^)
ruffin
6

CSS Level 3 especifica el unsetvalor de la propiedad. De MDN :

La palabra clave CSS no establecida es la combinación de las palabras clave iniciales y heredadas. Al igual que estas otras dos palabras clave de CSS, se puede aplicar a cualquier propiedad CSS, incluida la abreviatura CSS all. Esta palabra clave restablece la propiedad a su valor heredado si hereda de su padre o a su valor inicial si no. En otras palabras, se comporta como la palabra clave heredar en el primer caso y como la palabra clave inicial en el segundo caso.

Lamentablemente, este valor no se admite actualmente en todos los navegadores, incluidos IE, Safari y Opera. Sugiero usar transparentpor el momento.

Gert Hengeveld
fuente
3

escribe esto:

.class {
background-color:transparent;
}
Abolfazl Miadian
fuente
2
¡Explique su código y cómo ayuda a resolver el problema! - De la opinión
Luca Kiebel
Okay. background-color es un atributo css y, como todos los atributos css, puede tener algún valor válido y no válido. El valor válido para el color de fondo puede ser uno de los siguientes formatos: # 5f9 o # 56f293 o transparente. transparente significa que desea un color de fondo nulo o ninguno.
Abolfazl Miadian
1
wow - ¿6 años después de la pregunta (y la respuesta) respondes con un duplicado?
NarfkX
el momento de preguntar no es importante porque cada día algunas personas visitan esta página u otra página anterior para obtener respuestas. ¡Creo que mi sintaxis de respuestas es más clara!
Abolfazl Miadian
1

Entonces, me gustaría explicar el escenario en el que tuve que hacer uso de esta solución. Básicamente, quería deshacer el atributo de color de fondo establecido por otro CSS. El resultado final esperado era hacer que pareciera que el CSS original nunca había aplicado el atributo de color de fondo. El ajuste lo background-color:transparent;hizo efectivo.

Binita Bharati
fuente
1
Estoy encontrando ese fondo: transparente no está funcionando para que anule un color de fondo establecido por otro CSS. Si elijo el fondo: rojo; por ejemplo, eso funcionará. Pero fondo: transparente; está permitiendo que permanezca el otro color de fondo css. ¿Alguna idea de cómo detener eso?
Auxiliar Joel