Background-color: none CSS valido?


432

Qualcuno può dirmi se il seguente CSS è valido?

.class {
    background-color:none;
}

10
Il validatore può spesso rispondere a questo tipo di domande.
30

10
Potresti essere confuso con background:none;, che è valido e che imposta il colore di sfondo su trasparente.
Mr Lister,

Risposte:


551

Probabilmente vuoi transparentcome nonenon è un background-colorvalore valido .

Le specifiche CSS 2.1 indicano quanto segue per la background-colorproprietà:

Value: <color> | transparent | inherit

<color>può essere una parola chiave o una rappresentazione numerica di un colore. Le colorparole chiave valide sono:

verde acqua, nero, blu, fucsia, grigio, verde, lime, marrone, blu scuro, oliva, arancio, viola, rosso, argento, verde acqua, bianco e giallo

transparente inheritsono parole chiave valide a tutti gli effetti, ma nonenon lo sono.


25
Sì. Poiché il valore iniziale è transparent, questo è quello che usi se vuoi disattivare "la colorazione dello sfondo".
Lister

1
nessuno di questi verrà ripristinato su un valore precedente (ovvero se impostato da un'altra regola CSS :(
pstanton

2
@pstanton nel tuo caso, devi dare il colore di sfondo: trasparente! importante;
Herr

Questo mi ricorda di aver provato a usare font-color quando ho iniziato a scrivere codice. Certo che colorno font-color. Ha così tanto senso ogni volta che altre proprietà dei font hanno fontdavanti ...
serraosays

@herr Ma, come ha detto Pstanton, l'impostazione del colore di sfondo trasparente avrebbe la precedenza sulle proprietà dei CSS precedenti! Esiste un modo per rimuovere questa proprietà del colore di sfondo in modo tale che prenda la proprietà CSS dalla precedente?
SE_User

159

No, usa transparent invece none. Vedere esempio di lavoro qui in questo esempio se si vuole cambiare transparentper nonenon funzionerà

usa come .class { background-color:transparent; }


Dove .class è quello che chiamerai la tua classe trasparente.


Nel mio esempio è completamente opposto. Se non cambi nessuno in trasparente, non funzionerà. Non ho davvero bisogno di usare nessuno: jsfiddle.net/BkAad
Hrvoje Golcic

Nel tuo esempio, cambia in body *: not (.exception) {background-color: transparent} Devi rimuovere il! Important in quanto costringe tutti gli altri dentro ad avere quella proprietà. E all'interno li (s) piuttosto utilizzare la proprietà color-background rispetto a quella dello sfondo solo per il colore di sfondo.
yveslebeau,

67

La risposta è no.

scorretto

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

Corretta

.class {
    background-color: transparent;
}

background-color: transparentrealizza la stessa cosa con cui volevi fare background-color: none.


7
.class {
    background-color:none;
}

Questa non è una proprietà valida. Il validatore W3C visualizzerà il seguente errore:

Errore valore: colore di sfondo nessuno non è un valore di colore di sfondo: nessuno

transparentpotrebbe essere stato selezionato come termine migliore anziché 0o come nonevalori durante lo sviluppo delle specifiche dei CSS.


2
E questo ripete ciò che James ha detto due anni e mezzo fa, ma in un formato non tagliato e incollabile. ; ^)
Ruffin

6

CSS Level 3 specifica il unsetvalore della proprietà. Da MDN :

La parola chiave CSS non impostata è la combinazione delle parole chiave iniziali ed ereditate. Come queste altre due parole chiave a livello CSS, può essere applicata a qualsiasi proprietà CSS, inclusa la stenografia CSS all. Questa parola chiave reimposta la proprietà al suo valore ereditato se eredita dal suo genitore o al suo valore iniziale in caso contrario. In altre parole, si comporta come la parola chiave eredita nel primo caso e come la parola chiave iniziale nel secondo caso.

Purtroppo questo valore non è attualmente supportato in tutti i browser, inclusi IE, Safari e Opera. Suggerisco di usare transparentper il momento.


3

Scrivi questo:

.class {
background-color:transparent;
}

2
Spiega il tuo codice e come aiuta a risolvere il problema! - Dalla recensione
Luca Kiebel,

Ok. background-color è un attributo CSS e come ogni attributo CSS può avere un valore valido e non valido. il valore valido per il colore di sfondo può essere uno dei seguenti formati: # 5f9 o # 56f293 o trasparente. trasparente significa che si desidera un colore di sfondo nullo o nessuno.
Abolfazl Miadian,

1
wow - 6 anni dopo la domanda (e la risposta) rispondi con un duplicato?
NarfkX,

il momento della domanda non è importante perché ogni giorno alcune persone visitano questa pagina o un'altra vecchia pagina per le risposte. Penso che la mia sintassi delle risposte sia più chiara!
Abolfazl Miadian,

1

Quindi, vorrei spiegare lo scenario in cui ho dovuto utilizzare questa soluzione. Fondamentalmente, volevo annullare l'attributo color background impostato da un altro CSS. Il risultato finale atteso era far sembrare che il CSS originale non avesse mai applicato l'attributo color-background. L'impostazione ha background-color:transparent;reso questo efficace.


1
Sto trovando quello sfondo: trasparente non funziona per me per sovrascrivere un colore di sfondo impostato da un altro CSS. Se scelgo sfondo: rosso; per esempio - funzionerà. Ma sfondo: trasparente; sta permettendo all'altro colore di sfondo CSS di rimanere. Qualche idea su come fermarlo?
Joel ausiliario
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.