2010-02-24 6 views
13

È possibile includere più css contemporaneamente in html? O per essere precisi, è possibile includere tutti i css inseriti in una directory, in una volta?
come allo stato attuale quello che facciamo è: -Come includere tutti i CSS conservati in una direcotry?

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

ho bisogno di qualcosa di simile a: -

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

E 'possibile? o c'è qualche alternativa a questo?

risposta

24

è possibile creare un foglio di stile maestro di includere in ogni pagina, e all'interno di tale file CSS è possibile utilizzare @import per includere gli altri.

Questo non risolve il problema di dover includere manualmente ogni singolo file css, ma almeno lo incapsula all'interno del foglio di stile principale in modo da non dover ripetere tutti i riferimenti in ogni file html. Se aggiungi file css aggiuntivi, dovrai solo aggiungere un riferimento nel master css e tutte le pagine avranno accesso ad esso.

Esempio HTML CSS Riferimento:

<link href="master.css" type="text/css" /> 

Esempio Maestro CSS (master.css):

@import url(style1.css); 
@import url(style2.css); 
@import url(style3.css); 

Per saperne di più when to use @import and it's compatibility with older browsers.

+0

sì! Posso accettare questa soluzione –

+0

Sono contento che la soluzione funzioni per voi, ma ci sono alcuni buoni punti da fare anche nelle altre risposte e nei commenti. Se possibile, dovresti considerare di combinare i file css in uno solo. –

1

No, non è possibile utilizzare i caratteri jolly in un href. Dovrai specificare un tag link per ogni file css che devi includere.

+0

vuoi dire se ci sono 20 css nella directory, quindi dovrò menzionare tutti i 20 css !! –

+0

sì :-) si –

+0

Si dovrebbe prendere in considerazione la combinazione di alcuni di questi file css insieme. O se si mantengono tutti e venti, assicurarsi che il caching funzioni correttamente. –

0

È possibile scrivere uno script sul lato server che concateni tutti i file nella directory e li invia al client, quindi inserisce lo script in un tag <link>.

Tuttavia, fare attenzione agli errori di sintassi.

4

Avresti bisogno di fare questo serveride. Se usi PHP, dai un'occhiata a glob.

Ad esempio:

foreach (glob("path/to/css/*.css") as $css) { 
    echo "<link type='text/css' rel='stylesheet' href='$css'>\n"; 
} 
+0

Perfetto. Esattamente quello di cui avevo bisogno. Funziona come un fascino –

0

E 'impossibile farlo lato client. È possibile farlo con l'aiuto di una tecnologia lato server. Ma l'approccio migliore sarebbe quello di incorporare tutti i CSS in un singolo file e includerlo.
Se si vuole ancora mantenere css splited ai file, fare ciò che molti lo fanno e utilizzare un thay tool di creazione incorporare tutti i CSS in un unico file solo per il server di produzione/collaudo

0

si potrebbe usare php per elencare tutti i file con i CSS estensione in quella directory ...

$fp = opendir($dir); 
while ($file = readdir($fp)) { 
     if (strpos($file, '.css',1)) 
      $results[] = $file; 
    } 
closedir($fp); 

... e poi fare un costrutto foreach per incude di css

+0

Dalle sue altre domande, sembra che usi Java. – SLaks

0

ci possono essere alcune soluzioni possibili:

  • Considerare l'idea di importare una pagina PHP (ad es. ./tabs_css/allcss.php) che concatena e restituisce tutti i css nella directory. Questo potrebbe essere un po 'impegnativo per la CPU.

  • Considera di creare un file combo css che è la concatenazione di tutti i tuoi file CSS. Questo potrebbe essere possibile creare automaticamente aggiungendo ganci speciali al sistema di controllo della versione.

Problemi correlati