Joomla.it Forum
Joomla! 2.5 (versione con supporto terminato) => Joomla! 1.6/1.7/2.5 => : rolfo85 11 Nov 2011, 11:13:18
-
Ciao,
Se modifico il css di un componente installato, quando lo aggiorno perdo le modifiche che ho fatto a quel css ?
Se sì posso fare l'override del css del conponente ?
Grazie
-
Ciao rolfo85,
sì è possibile che tu le perda. Io faccio una copia del file css e dopo l'aggiornamento sovrascrivo con quello vecchio il nuovo. Anche per eventuali immagini (ad esempio del template della NewsLetter).
In alternativa potresti provare a copiare il css del componente nel file css del template e vedere se eliminado il foglio.css del componente usa il codice copiato. Dovrebbe funzionare, puoi provare... e cambiare il pecorso delle immagini e mettere le stesse sempre nella cartella images del template...
-
Se il tuo componente ha un suo proprio file css, puoi sempre fare override aggiungendo le tue regole dopo averle modificate, all'interno del file css del template e attenzione aggiungere alla fine !important
Mi spiego meglio. Se il componente ha una regola tipo:span{color:red;}
Nel css del tuo template scrivi:span{color:yellow!important;}
-
Grazie a tutti per le risposte,
Nel caso di xplosion, l'override consisterebbe semplicemente nel creare un mio file css che vada a sovrascrivere le classi del css del componente con l'inportant ?
Oppure un altra ipotesi senza riempire di inportant tutto il foglio stile, potrebbe servire piazzare il mio css dopo il css di k2 ? il browser dovrebbe leggere prima quello di k2 poi il mio e così sovrascrivere passivamente tutte le regole simili.
Potrebbe funzionare ?
-
Scusa ma forse stai confondendoti con l'altro post... In questo non chiedevi come non perdere i css del componente in caso di aggiornamento? Se metti il tuo css dopo quello di K2 cosa c'entra con l'aggiornamento?
-
centra perchè se lo metto dopo, lui di default lo sovrascrive (in teoria), e se faccio l'aggiornamento del componente, automaticamente il mio css non lo perdo in quanto e mio non centra con quello di k2.
Se però quello di k2 mi cambia i nomi delle classi me lo infila in quel posto :-)
-
Per tuo css cosa intendi? Il tuo css di K2 o il tuo css del template? E dopo cosa e dove?
L'!important sovrascrive le regole del css di K2, senza non le sovrascrive perché sono in fondo al file template.css e non in fondo al file di K2.
Se non sono tante, fai come abbiamo scritto, con l'!important oppure, semplicemente, tieni il file personalizzato di K2 e dopo l'aggiornamento "aggiorna" anche quello.
-
@rolfo85
Mi spieghi la ragione per cui hai aperto 2 post con la stessa problematica?
(http://forum.joomla.it/index.php/topic,149089.0/topicseen.html)
Grazie
-
Ciao,
Sono simili ma non uguali le domande.
Il punto e che da una parte, ho il problema che il css di Joomla mi sovrascrive quello di k2 (che su tuo consiglio *xplosion* ho installato e mi sembra veramente un ottimo come conponente) causandomi problemi nella visualizzazione, e dall'altra; nel momento in cui devo definire una grafica personalizzata della visualizzazione degli articoli di k2, metto mani al css di k2, e poi quando aggiorno il conponente perdo le modifiche, volevo sapere se esistesse un override tipo quello che si fa sul codice dei mduli.
E così alla fine le due problematiche ho pensato di risolverle scrivendo uno stile personale aggiuntivo che incollerò alla fine degli altri stili in questa maniera:
<head>
<link href="k2.css" media="screen" rel="stylesheet" type="text/css" />
<link href="joomla.css" media="screen" rel="stylesheet" type="text/css" />
<link href="MIO.css" media="screen" rel="stylesheet" type="text/css" />
</head>
In questa maniera il mio sovrascriverà gli altri due e così otterrò 2 piccioni con una fava, in quanto non perderò le modifiche al css di k2 se lo aggiorno, visto che non ho toccato il suo file css e le modifiche apportate a mio.ccs andranno a creare una grafica personalizzata che abbatterrà i problemi di visualizzazione causati dalla sovrascrizione di Joomla.css con k2.css.
è fattibile ?
-
Si e No :D
Può anche capitare, ma questo lo devi verificare, che nel file css del componente le classi che ti interessano a fare override hanno già !important e in questo caso quello ha precedenza sul tuo quindi sei fregato se non inserisci anche te un !important , insomma fai delle prove.
-
Si è ovvio, ma in quel caso gli piazzo anche io un important e vinco la "sfida" :-)
Cmq apposto così - alla prossima ciao.