2009-05-11 15 views
6

Beh io ho 2 css includeordine di sovrascrittura stile css?

<link href="Styles/layout.css" rel="stylesheet" type="text/css" /> 
<link href="Styles/ATJournal.css" rel="stylesheet" type="text/css" /> 

layout.css

Table.infoBox tr td table tr td 
{ 
    padding: 0px; 
    border: 0px; 
} 

ATJournal.css

table.ATJMainTable tr td 
{ 
    border: 1px solid black; 
    padding: 3px; 
} 

e poi abbiamo questa tabella

<Table class="infoBox"> 
    <tr> 
     <td> 
     <table class="ATJMainTable"> 
      <tr> 
       <td> 
        some text! 
       </td> 
      </tr> 
     </table> 
    </tr> 
</table> 

Perché layout.css sovrascrive ATJournal.css in questo caso?

Anche se cambio l'ordine del css comprende "layout.css" ancora sovrascrive ATJournal.css ....

risposta

11

Il selettore è più specifico.

Table.infoBox tr td table tr td 

è lo stile di celle all'interno di un tavolo che si trova all'interno di una tabella classificata con infobox.

table.ATJMainTable tr td 

è lo styling cellule TD all'interno di una tabella classificata con ATJMainTable

Si potrebbe utilizzare importante per ignorare la specificità, o si potrebbe fare qualcosa di simile:!

table.infoBox tr td table.ATJMainTable tr td 

per ignorare specificamente quel pezzo .

In alternativa, è possibile ridurre il selettore di Infobox in modo che sia meno specifico?

3

Si tratta di un selettore più specifico.

Vedere here.

10

È possibile specificare quale regola vince utilizzando !important.

table.ATJMainTable tr td 
{ 
    border: 1px solid black !important; 
    padding: 3px !important; 
} 

Questo dice in sostanza il browser, che dovrebbe assicurarsi che questa regola è la regola più importante e tutti gli altri devono essere in cascata a favore di questa regola.

avviso: si consiglia di utilizzare questo con parsimonia perché causerà problemi se questo è difficile da rintracciare se lo si utilizza troppo.

+3

È meglio tentare di evitare l'uso di questa sintassi tutti insieme. non è male usarlo ma se puoi evitarlo dovresti. –

+4

Questa non è una risposta alla domanda. Potrebbe essere una soluzione al problema che ha ispirato la domanda, ma è un problema. – Jasper

+0

@Jasper ora alcuni anni più tardi, quando ho una maggiore comprensione di css ho cambiato la risposta accettata in quanto questa risposta non è il modo giusto per risolvere il problema! – Peter