Overriding del CSS di base di drupal

5 contenuti / 0 new
Ultimo contenuto
Overriding del CSS di base di drupal

Ciao a tutti, sto creando un blocco per l'inserimento automatico dei menu a tendina in drupal.
Il blocco è pronto, però alcune impostazioni del mio css vanno in conflitto con gli stili di base di drupal.
Ad esempio con il tema Garlan ho:

#header-region * {
display: inline;
line-height: 1.5em;
  margin-top: 0;
  margin-bottom: 0;
}

La proprietà inline non può essere compatibile con il mio blocco (li voglio a tendina, non in fila).
Ho provato ad inserire un nuovo #Header-region * nel mio css e caricarlo successivamente, ma viene in ogni caso preso per buono l'header-region di default.
Qualcuno sa dirmi se c'è una funzione per modificare le impostazioni del css di default?
Fino ad ora non ho toccato i temi, e per la completa indipendenza del blocco da essi vorrei continuare su questa strada.

Grazie
Aran

Usa Firebug (o qualcosa del genere) per scoprire in quale file CSS viene definita la proprietà che poi viene effettivamente usata per la visualizzazione. Poi controlla il codice della pagina (dal browser) per vedere la sequenza dei file CSS che vengono caricati.

In teoria lo stile del tema dovrebbe essere l'ultimo a essere caricato, comunque tieni conto che l'ordine a cascata delle dichiarazioni CSS può essere influenzato inserendo !important per la proprietà. Esempio:

#header-region * {
display: block !important;
line-height: 1.5em;
  margin-top: 0;
  margin-bottom: 0;
}

Inoltre, se stai usando il "compattamento" del CSS devi disabilitarlo e riabilitarlo ogni volta che fai modifiche ai vari CSS.

si ok, giusto.
Io so già dove è header-region e a mano l'ho già modificato, però io volevo fare una cosa automatica direttamente dentro al mio blocco senza mettere mano al tema (in modo da utilizzarlo con qualsiasi tema senza doverci mettere mano tutte le volte).
Io ho caricato il css del mio blocco tramite drupal_add_css e la funzione javascript tramite drupal_add_js , ed ho inserito i nuovi parametri di header-region* nella speranza di sovrascriverli, ma invece mi vengono caricati prima dello style.css del tema, annullando tutte le mie modifiche.

--
Il saggio non è colui che sa tutto, ma colui che sa dove trovare le risposte

Francamente, credo che le modifiche alla presentazione vadano messe nei temi, che si occupano appunto della presentazione; non a caso lo stile dei temi viene caricato per ultimo. Tra l'altro, non puoi pensare di usare un selettore "universale" valido per ogni tema, dato che non è per niente detto che in tutti i temi l'header sia identificato da #header. Se il problema è che stai usando Garland, che viene aggiornato a volte insieme al core, allora fatti una copia di Garland e chiamala in altro modo, poi fai lì le modifiche che ti servono.

hai perfettamente ragione, sto scrivendo una marea di stupidaggini :-D

--
Il saggio non è colui che sa tutto, ma colui che sa dove trovare le risposte