2014-05-01 15 views
5

Sto cercando di ignorare lo sfondo di un sito Web con Stylish ma non funziona. Anche il css di sfondo per il sito web è importante, ed è elegante.Come sovrascrivere lo sfondo CSS che ha già! Importante?

Il mio codice:

body { 
    background-image: none !important; 
    background: black !important; 
} 

Qualsiasi aiuto?

+1

non so nulla di elegante, ma come ipotesi, css funziona sull'ultima regola che trova. così è elegante aggiunto in un modo simile al css? se è così, basta rendere elegante l'ultima cosa che viene caricata, o almeno dopo il tuo css. – mmeasor

+0

La moda tipicamente inserisce prima il suo CSS - che è utile in molte situazioni, ma non in questa. –

risposta

3

avrete bisogno di essere più specifici (quick guide to CSS specificity), per esempio, utilizzando il selettore >:

body { 
    background-image: none !important; 
    background: black !important; 
} 

html > body { 
    background-image: none !important; 
    background: red !important; 
} 

JSBin

+2

o 'html> body' – sbeliv01

+0

@ sbeliv01 Grazie! Dimenticato di quello – SomeKittens

+1

Se non si riesce a trovare un selettore adeguatamente più specifico, sarà necessario utilizzare uno script Greasemonkey/Tampermonkey. –

0

In primo luogo, ti consiglio di non usare! Importante molto spesso, cerca di evitarlo del tutto.

IFe si dispone di un elemento è possibile definire il percorso CSS per questo elemento più bene in modo che questo ignori. Per esempio:

.elem { 
    color: black!important; 
} 

#list1 > .elem { 
    color: red!important; 
} 
+3

Non hai letto la domanda: non sta scrivendo la pagina, è stato qualcun altro. Sta usando un'estensione per modificare la pagina. – SomeKittens

+0

Può ancora modificare le cose se riesce a connettersi a quel server ftp che probabilmente penso che possa. Il secondo esempio funzionerebbe ancora, anche se inserisce il suo css in un modo personalizzato come vuole "Stylish". "puoi definire il percorso CSS per questo elemento in modo più corretto, quindi questo ignora che" non è la risposta alla domanda ??? – Bluedayz

+0

L'OP ha controllo zero sul server; di certo non può connettersi con FTP! (Questo è vero per quasi tutti gli scenari Stylish o userscript.) Questa risposta è principalmente sbagliata per questa domanda (e l'altra risposta spiega meglio le parti giuste). Elegante è anche il caso in cui '! Important' non è solo ok, è spesso necessario. ('! important' è una cattiva pratica per i web designer, ma non per gli userscripters.) –

0

La documentazione ufficiale di come funziona specificità is here . In un numero elevato, la specificità della base è semplicemente (100 * ID rules) + (10 * class rules) + (1 * tag rules).

Se si sta imbattendo in un sito Web molto odioso o si desidera utilizzare una regola molto ampia, è possibile utilizzare :not(#some_id_which_you_will_never_find) per aumentare la specificità artificialmente. Le regole ID hanno il valore più alto, quindi dovresti usarle.

Per esempio ho voluto per garantire che ogni div in un sito web non è stato contrassegnato come visibility: hidden e usato questo:

div:not(#oStHDi_0):not(#oStHDi_1):not(#oStHDi_2):not(#oStHDi_3):not(#oStHDi_4):not(#oStHDi_5) { 
    visibility: inherit !important; 
} 

Questo ha una specificità del 601.

Nel tuo caso body ha specificità 001 , html > body è 002 e body:not(#foobar) è 101.

Problemi correlati