css e php

Ho la necessità d'insererire una variabile in un file.css, mi spiego meglio.

in una pagina ho un file esterno.css:

<link rel="stylesheet" type="text/css" href="css/style_news.css" />

il cui codice è

.......padding: 5px;
   background-color:#00FF00;
   .......

adesso ho bisogno che il riferimento esadecimale al colore mi arrivi tramite una variabile di php.

Ho provato a cambiare estenzione al file.css in file.css.php scrivendo il seguente codice:

.....   background-color:
   <?php 
   $col="#00FF00";
   echo $col;
    ?>
    ;.......

.

ebbene il risultato è strano; infatti utilizzando IE funziona benissimo; mentre con mozilla va in tilt.

come posso fare per utilizzare il codice con entrambe i browser?

grazie giovanni

inviato 10 anni fa
bonann23
X 0 X

Dimmi intanto una cosa: a che ti serve? Non è che è possibile aggirarlo con uno dei tanti hack per i css?

IE: digerisce di tutto, persino che il foglio di stile, se inline, venga inserito al di fuori della dichiarazione <header>, quindi non fa testo.

Ora se puoi inserisci anche il risultato del tuo php, ovvero metti il tuo css magari c'è qualche errorino nella sintassi, che so i due punti dopo color o un punto e virgola dopo la dichiarazione del colore.

Anzi, riguardando il tuo "poco" codice php, sembra che $col inserisca il valore a capo en on sulla stessa linea della dichiarazione background-color. Dico ciò perché per avere una risposta rapida, sarebbe necessario vedere tutto il codice che genera il problema, al limite uno spezzone ma significativo :)

risposto 10 anni fa
Marco Grazia
modificato 10 anni fa
X 0 X

Ciao

prova ad inserire in testa al file

<?php header("Content-type: text/css"); ?>

risposto 10 anni fa
nino
nino
1
X 0 X

La modifica dell'estensione è necessaria altrimenti il PHP non esegue le istruzioni all'interno del file.

A questo punto si tratta solo si un errore di sintassi del file CSS (che può avere più o meno influenza a seconda del browser), non è colpa di PHP.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

La modifica dell'estensione è necessaria altrimenti il PHP non esegue le istruzioni all'interno del file.

A questo punto si tratta solo si un errore di sintassi del file CSS (che può avere più o meno influenza a seconda del browser), non è colpa di PHP.

 :bye:

E io che ho detto?  ???

riguardando il suo codice penso che il problema sia dovuto a questo:

background-color:
   <?php 
   $col="#00FF00";
   echo $col;
    ?>

meglio sarebbe:

<?php $col =  "#00FF00"; ?>
background-color: <?=$col; ?>
risposto 10 anni fa
Marco Grazia
X 0 X

Allora ho provato ad inserire il pezzo di codice postato e l'ho inserito nel css (vedi codice):

#newsTitle{
   width: 160px;
   \width:170px;
   w\idth:160px;
   height: 15px;
   font-size: 110%;
   font-weight: bold;
   color: #FFFFFF;
   padding: 5px;
   <?php $col =  "#00FF00"; ?>
    background-color: <?=$col; ?>

   margin-top: 20px;
   margin-left: 8px;
}

Purtroppo non gira nè con IE nè con mozilla.

Ho allora provato inserendo questo codice:

   
<?php
   $col="#00FFF0";
echo"background-color:#00FFF0;";
    ?>

ebbene funziona solo con IE.

Cosa devo fare?

grazie giovanni

risposto 10 anni fa
bonann23
X 0 X

forse volevi scrivere questo:

<?php
$col="#00FFF0";
echo"background-color: $col;";
?>

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Si; ma ho sbagliato il codice postato.

Comunque anche con il codice che mi hai suggerito non và!!!!!

giovanni

risposto 10 anni fa
bonann23
X 0 X

Effettivamente c'è una specie di incompatibilità.

Sto avendo lo stesso problema, anche se non riferito ad un unico colore: identifico il browser e includo un foglio di stile differente, a seconda che sia IE o altro, ebbene, funziona correttamente lo script xkè guardando il sorgente della pagina sia on firefox che con IE ci sono i css corretti, ma firefox fa il "rendering" in modo errato, se lo stesso foglio di stile viene caricato direttamente senza metterlo in un echo firefox lo regge tranquillamente.

risposto 10 anni fa
LonelyWolf
X 0 X

Scusate il post, ho appena risolto, il problema mio è differente, con IE per avere 3 div allineati sinistra centro e destra bisogna metterli nell'ordine sinistra, centro e destra.

Con firefox prima sinistra, poi destra e il centrale, Quindi non era legato molto al css, ma alla struttura di base.

Ritornando al problema di bonann credo sia dovuto proprio al fatto che il file css è .css e viene rihiamato attraverso l'header quindi firefox che vuole le cose per bene non lo digerisce correttamente, IE che digerisce tutto....

La prova del 9 sarebbe:

inserire il foglio di stile direttamente nella pagina anziché richiamarlo con link rel ( o in alternativa fare un include dlla pagina php del css esterno che dovrà però avere anche le intestazioni come se fosse inline) , ovviamente utilizzando a questo punto anche il php per il codice colore.

risposto 10 anni fa
LonelyWolf
X 0 X

La prova del 9 sarebbe:

inserire il foglio di stile direttamente nella pagina anziché richiamarlo con link rel ( o in alternativa fare un include dlla pagina php del css esterno che dovrà però avere anche le intestazioni come se fosse inline) , ovviamente utilizzando a questo punto anche il php per il codice colore.

Non fa nessuna differenza come colleghi il foglio di stile alla pagina, l'unica cosa è che deve stare sempre dentro la dichiarazione header. Indipendentemente da come la pensa IE.

Quello che non puoi fare è cambiarlo al volo, senza interagire con il DOM o senza rinfrescare la pagina, ci sono degli esempi sulla rete, ma ora non posso recuperarli.

Tuttavia, mi pare che il tuo problema sia dovuto più che altro a come il PHP inserisce il codice colore all'interno del foglio di stile e non alla disposizione dei livelli.

risposto 10 anni fa
Marco Grazia
X 0 X

non so se hai risolto...cmq io una cosa del genere l'ho risolta così:

- Nel file che include lo stile ho scritto: <?php include_once('style.css'); ?>

- e infine semplicemente nel CSS va inserito il TAG <style type="text/css"> e ovviamente alla fine del file css il tag di chiusura </style>

ora...è inutile che ti spieghi come funziona ora lo script...dato che è semplicissimo quello che ho scritto...e in ogni caso basta vedere il codice sorgente della pagina che il browser va a generare (in FF CTRL+U) per renderti conto di quello che ha fatto lo script e di come funziona include.

Penso che con questo modo non ci siano neanche problemi legati alla sicurezza...GIUSTO?

A presto!

risposto 8 anni fa
micdech
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda