Newsgroup: it.comp.www.php
Titolo: CSS on-the-fly e doctype

.
L'idea era quella di creare dei fogli stile con estensione .php, che 
IMHO presentava parecchi aspetti invitanti: ad esempio, si potrebbero
richiamare fogli stile passando loro dei parametri in get:
<link rel="stylesheet" type="text/css" href="css.php?foo=1">
e in base a questi parametri pilotare determinate caratteristiche
della pagina.
Ho fatto qualche test e ho scoperto una cosa curiosa: il meccanismo
funziona se non viene specificato alcun doctype; invece se viene
indicato un doctype, Mozilla e i browser Gecko based ignorano i fogli
stile. Da altre prove mi è sembrato che Moz & c, in modalità standard,
pretendano che i fogli stile abbiano estensione .css.
Ne sapete qualcosa?
Se volete vedere il test, è qui (scusate i fastidiosi popup di
Freesurf): 
http://www.mocambo.freesurf.fr/cssprove/prova.php
 
Matteo
--------------------------------------------
"Beato il popolo che non ha bisogno di eroi"

 L'idea era quella di creare dei fogli stile con estensione .php,
Penso che la soluzione migliore sia quella di far processare i file css dal
web server, magari solo quelli inseriti in una certa directory, per non
sovraccaricarlo troppo di lavoro.
Ovviamente se hai la possibilita' di agire sul file di conf del web server.
Max

 della pagina.
E se invece dici al server di processare un comune .css come un .php?
Non so se poi da fastidio il parametro che passi.
Cmq. in un progetto ho risolto questa problematiche cacchando
tutti i file css e dopo:
  $style="foo1.css";
  <link rel="stylesheet" type="text/css" href="css/<?=$style?>">
Dipenda da quanto flessibile deve essere il tuo stylesheet.
-- 
http://diebspiel.de/index.php?id=1930

fermat wrote:

Anche io avrei questa esigenza!
Per ora ho diviso il mio CSS esterno in 3 o 4 piccoli da scegliere via 
php...
Ma non è il massimo nè è sempre attuabile.
In teoria basterebbe mettere .css su Apache come estensione da far 
passare al parser PHP , (e metterci il PHP dentro) ma anche questo non è 
sempre fattibile (un esempio su tutti: in hosting).
Non ho buone soluzioni per ora, ma seguo con attenzione!!
Ciao
Marcello

Dipenda da quanto flessibile deve essere il tuo stylesheet.
Cioč hai creato diversi css tra i quali poi caricavi quello voluto?


passare al parser PHP , 
ho provato sul mio piccě in localhost: i CSS venivano parsati (lo
vedevo se li caricavo direttamente su una finestra del browser), ma a
quel punto i GECKO-based li ignoravano. Forse ho sbagliato qualcosa.
Ciao


 Ne sapete qualcosa?
Il problema deriva, IMHO, proprio dal fatto che il tag <link>, quando 
l'attributo type e' su "text/css" richieda espressamente che il file 
linkato abbia estensione .css. La stessa cosa vale con <style>: se 
imposti il MIME-type su "text/css", il contenuto deve essere CSS. Non ho 
provato, pero' prova ad utilizzare un header(content-type: text/css) 
prima del codice e vedi cosa succede.
-- 
Spirito Libero
"La verità non sta in un solo sogno ma in molti sogni!"
(Le mille e una notte)

prima del codice e vedi cosa succede.
Spirito Libero, non ci posso credere!!! In effetti, con un bel
<?php header('content-type: text/css') ?>
come prima riga del foglio stile, il tutto funziona!
Con un distinguo: non funziona su Freesurf, ma funziona su altri
server su cui l'ho testato: 
http://www.swif.it/cssprove/prova.php
 .
Anche la validazione sia dell'html della pagina sia dei fogli stile
va a buon fine sugli altri server, ma non su 
freesurf.fr
. 
Va detto che Freesurf prende l'iniziativa di aggiungere un session ID
all'apertura di una pagina. In sostanza, credo che il problema sia di
Freesurf.
Fatto salvo ciň, la tua idea č azzeccata.
Grazie


fermat ha scritto:




una cosa del genere:
nell'html:
<HEAD>
<?php
  include "style.php";
?>
</HEAD>
style.php:
<?php
print("<STYLE>\n");
  //stili
  print("a { color:".$HTTP_GET_VARS["a_color"]."; }\n");
print("</STYLE>");
Ciao
-- 
Chinaski FDB
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Cioč hai creato diversi css tra i quali poi caricavi quello voluto?
Esatto!