2017-05-17 3 views
0

J'ai suivi ce tutoriel https://css-tricks.com/css-variables-with-php/ pour utiliser les variables php en CSS. J'utilise concrete5 (version 5.6) CMS. J'ai chargé les fichiers .php et .css.Y compris les variables php en CSS (dans concrete5)

NewFile.php

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

$clRed = 'red'; 
?> 

NewFile.css

@import "/path/css/NewFile.php?type=cms"; 

.one-third{ 
     width: 33%; 
     margin: 0 auto; 
     background: <?php echo $clRed;?>; 
    } 

mais ne lit pas css les variables php.

Chrome Developers tool screenshot

J'ai aussi renvoyé ces liens

http://doctype.com/use-php-variables-inside-css-file

how can I use of a php variable into a .css file

PHP Variables in CSS not working

https://www.concrete5.org/community/forums/themes/reusing-editable-values-andor-embedding-php-in-stylesheets

Merci d'avance. Note: Je sais que ce n'est pas une pratique recommandée.

Répondre

2

Vous avez oublié que le css EST un PHP.

Regardez là:

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

Renommer NewFile.css à NewFile.css.php et il fonctionnera. Mais je suggère d'unifier les fichiers, il suffit d'appeler NewFile.php comme le dit le tutoriel. Dans la tête de fichier php instancier:

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

$clRed = 'red'; 
?> 

Et le reste du fichier, il est juste Css avec le echos.

+0

Cela ne fonctionne pas, quelle devrait être la hiérarchie. Dois-je d'abord importer le fichier * .css.php ou le fichier * .php? – Neetigya

+0

Oubliez les deux fichiers, unifiez-les dans NewFile.php et mettez en href de lien. – calexandre

+1

Cela fonctionne, merci. Pour les futurs lecteurs, cette ligne est très importante: - header ("Content-type: text/css; jeu de caractères: UTF-8"); et un autre bon lien - http://jafty.com/blog/tag/php-header-content-type-css/ – Neetigya

0

Vous ne pouvez pas compiler du code php dans des fichiers CSS. Votre didacticiel lié vous guidera pour créer un script php qui affichera le code CSS et définira l'en-tête sur "text/css". Vous pouvez donc lier votre fichier php en tant que feuille de style css dans une page html.

Dans votre cas, vous devez faire écho le contenu de votre fichier css (sans importer) dans votre fichier php.

style.php

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

$clRed = 'red'; 

echo '.one-third{ 
    width: 33%; 
    margin: 0 auto; 
    background: '.$clRed.'; 
}'; 
?> 

index.php

<?php 
echo '<link rel="stylesheet" type="text/css" href="style.php" />'; 
?> 
0

Ok, donc d'abord votre erreur se produit en raison de l'extension que vous utilisez est Css pas .php. Essayez ceci, renommer l'extension de fichier, puis il suffit d'utiliser le format

<style> 
.blabla{ 
.... 
} 

#heeeHoo{ 
... 
} 
</style> 

que l'utilisateur hakiko indiqué dans l'une de vos références, puis utilisez <?php include 'style.php'; ?> pour l'inclure dans l'endroit désiré. Je suis assez certain que PHP include copie juste et colle le contenu d'un dossier, ainsi his solution devrait fonctionner.Assurez-vous simplement de le mettre dans le tag <head> html

+0

Hey, Sa solution est bonne mais mon problème est que mon application a 4 sous-domaines et il y aura plus de sous-domaines à l'avenir, je veux donner différents codes de couleur à chaque sous-domaine, comme si une école se connecte les couleurs devraient être vert et blanc, lorsqu'un hôpital utilise mon application, les couleurs doivent être rouges et bleues. L'application a déjà 15-20 css. Il n'est pas possible de les changer pour l'extension .css.php donc mon idée était de créer un fichier css.php et de le charger après tous les scripts css. Dans ce cas, l'utilisation de variables aidera, je peux dire si (utiliser == 'école') définir arrière-plan = 'rouge'. – Neetigya

+0

Vous pouvez utiliser '! Important' pour remplacer les autres utilisations du CSS –