2011-12-19 15 views
5

Tengo varias variables (colores hexadecimales) definidas en una base de datos. Necesito pasar estas variables de MySQL a una hoja de estilos LESS.js a través de PHP. ¿Posible?Pasar variables a una hoja de estilos LESS.js

Si no, ¿algún consejo sobre una manera de hacer algo similar? Las variables de aclarar y oscurecer son la clave.

+0

¿Cómo está convirtiendo su LESS en CSS? –

+0

Configurar el lado del cliente ahora mismo. Estoy buscando algo como: href = "styles.less & var = FFF" – Chords

+3

Bueno, la noción de que alguna vez hubo variables se ha ido una vez que la compiló. Si te estás moviendo para hacerlo del lado del servidor de lo que seguramente es posible, aunque no estoy seguro de cómo. Lo mejor que puedo pensar es hacer que PHP genere una hoja de estilo LESS con esas variables y que luego compile con todo lo demás. –

Respuesta

5

El mejor enfoque que me viene a la mente es dynamic generate un archivo LESS usando PHP (incluyendo tus vars).

1 \ Deberá incluir una nueva hoja de estilo en sus páginas HTML.

<link rel='stylesheet/less' href='css/style.php' /> 

2 \ En su style.php incluyen su PHP vars de la siguiente manera:

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

@brand_color_1 = <?php echo $brand_color_1; ?>; 
/* Add all other vars do you need. */ 

3 \ A continuación, en la parte inferior (o después MENOS declaración var) de esta style.php agrega todos sus importaciones necesarias de la siguiente :

<?php 
    header("Content-type: text/css; charset: UTF-8"); 

    @brand_color_1 = <?php echo $brand_color_1; ?>; 
    /* Add all other vars do you need. */ 

    @import "style.less"; 
?> 

Esto funciona como un reloj.

Hay un artículo que puede read about CSS Variables with PHP escrito por Chris Coyier.


Otra no se recomienda alternativa que está compilando archivos MENOS en el lado del cliente, que podría manualmente compilarlas y pasar PHP vars haciendo lo siguiente:

<script type="text/javascript"> 
var colors = ''; 
colors += '@brand_color_1: <?php echo $brand_color_1 ?>;' 
colors += '@brand_color_2: <?php echo $brand_color_2 ?>;' 
colors += '@import "style.less"'; 
// Add other imports. 
var parser = new (less.Parser)(); 
parser.parse(colors, function(err, tree) { 
    var css = tree.toCSS(); 
    // Add it to the DOM maybe via jQuery 
}); 
</script> 
+0

Hay un problema en "3 \", el último '?>' Se extravió. – DUzun

-1

CSS:

#header { 
    color:black; 
    border:1px solid #dd44dd; 
} 

#header .navigation { 
    font-size:12px; 
} 

#header .navigation a { 
    border-bottom:1px solid green; 
} 

#header .logo { 
    width:300px; 
} 

#header .logo:hover { 
    text-decoration:none; 
} 

MENOS:

#header { 
    color:black; 
    border:1px solid #dd44dd; 
    .navigation { 
     font-size:12px; a { 
      border-bottom:1px solid green; 
     } 
    } 
.logo 
+4

Todo el contenido en Stack Exchange es [CC-by-SA] (http://creativecommons.org/licenses/by-sa/3.0/). Si no está de acuerdo con esos términos, Stack Exchange no es una salida válida para sus contribuciones. – Makoto

Cuestiones relacionadas