2010-02-24 12 views
13

¿Es posible incluir múltiples CSS a la vez en html? O para ser precisos, ¿es posible incluir todos los css colocados en un directorio, de una vez?
como en la actualidad lo que hacemos es: -¿Cómo incluir todos los CSS guardados en un directorio?

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

necesito algo como: -

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

¿Es posible? o hay alguna alternativa de esto?

Respuesta

24

Se puede crear una hoja de estilo principal que incluye en cada página, y dentro de ese archivo CSS se puede utilizar @import para incluir los otros.

Esto no resuelve el problema de tener que incluir manualmente cada archivo css individual, pero al menos lo encapsula dentro de la hoja de estilo maestra para que no tenga que repetir todas las referencias en cada archivo html. Si agrega archivos CSS adicionales, solo deberá agregar una referencia en el CSS maestro y todas las páginas tendrán acceso a él.

Ejemplo de Referencia HTML CSS:

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

Ejemplo Maestro CSS (master.css):

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

Leer más sobre when to use @import and it's compatibility with older browsers.

+0

¡sí! Puedo aceptar esta solución –

+0

Me complace que la solución funcione para usted, pero también se pueden hacer algunos buenos comentarios en las otras respuestas y comentarios. Si es posible, debería considerar combinar los archivos CSS en uno. –

1

No, no es posible usar comodines en un href. Tendrá que especificar una etiqueta de enlace para cada archivo css que necesite incluir.

+0

quieres decir si hay 20 css en el directorio, entonces tendré que mencionar los 20 css !! –

+0

sí :-) –

+0

Debería considerar combinar algunos de estos archivos css. O si conserva los veinte, asegúrese de que el almacenamiento en caché esté funcionando correctamente. –

0

Se podría escribir un script del lado del servidor que concatenar todos los archivos en el directorio y envía esa al cliente, a continuación, poner el script en una etiqueta <link>.

Sin embargo, tenga cuidado con los errores de sintaxis.

4

Tendría que hacer esto en el servidor. Si está usando PHP, eche un vistazo al glob.

Por ejemplo:

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

Perfecto. Exactamente lo que necesitaba. Funciona como un encanto –

0

Es imposible hacerlo en el cliente. Es posible hacerlo con la ayuda de una tecnología del lado del servidor. Pero, el mejor enfoque sería incorporar todo el CSS en un solo archivo e incluir eso.
Si aún desea mantener css splited a los archivos, hacer lo que muchos hacen y utilizar un paseíto herramienta de construcción incorporan todos los CSS en un archivo sólo para el servidor de producción/pruebas

0

se podía usar PHP para listar todos los archivos con CSS la extensión de ese directorio ...

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

... y de hacer una construcción foreach para incude de css

+0

De sus otras preguntas, parece que usa Java. – SLaks

0

puede haber algunas soluciones posibles:

  • Considere la idea de importar una página PHP (p. ./tabs_css/allcss.php) que concatena y devuelve todo el css en el directorio. Esto puede requerir un poco de CPU.

  • considerar la creación de un archivo CSS combinado que es la concatenación de todos sus archivos CSS. Esto podría ser posible crear automáticamente agregando ganchos especiales a su sistema de control de versiones.

Cuestiones relacionadas