php variable in CSS

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hans -

Hans -

23/09/2014 10:27:25
Quote Anchor link
Beste Mensen,

Ik ben bezig met een concept van mezelf, en heb daar het volgende bij nodig. De gebruiker kan in de backend een kleur aangeven via colorpicker. Deze kleur (wanneer bevestigd is) moet zich kunnen toepassen in de gehele layout. Dus stel voor in een layout wordt #9adf00 gebruikt als background-color van alles, moet ik specifiek die kleur (#9adf00) veranderen door de gekozen kleur.

Ik heb zelf al gekeken naar wat er mogelijk is in combinatie met php en css. Enkel ben ik er nog niet helemaal achter hoe ik dus die specifieke kleur allemaal kan replacen door de nieuwe kleur.
 
PHP hulp

PHP hulp

16/04/2024 20:28:18
 
- Ariën  -
Beheerder

- Ariën -

23/09/2014 11:25:00
Quote Anchor link
Je kan die toch opslaan in de database, of in een cookie?
Via een AJAX-request vanuit je colorpicker (er van uitgaande dat je een JS-variant daarvoor gebruikt) zou je de waarde dan op kunnen slaan.
 
Hans -

Hans -

23/09/2014 11:27:57
Quote Anchor link
Aar,

Bedankt voor je bericht.

Misschien had ik wat duidelijker moeten zijn. Ik zit namelijk enkel met het probleem hoe ik deze in de css ga zetten. Aangezien CSS geen php variabelen ondersteund, en ik een hele boel background's moet gaan replacen.
 
Ivo P

Ivo P

23/09/2014 12:22:33
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<link rel="stylesheet" type="text/css" href="/css/style.php" />


en dan in style.php voor de zekerheid ook

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php header('Content-Type: text/css'); ?>


opnemen
 
Hans -

Hans -

23/09/2014 12:43:32
Quote Anchor link
Ja enkel verwijs je het nu door naar een andere stylesheet (als ik het goed heb?). Enkel is de kleur voor de layout dynamisch, deze kunnen ze zelf instellen dus.

Toevoeging op 23/09/2014 12:43:57:

Het kan ook zijn dat ik je antwoord niet goed begrijp, mijn excuses dan. Graag hoor ik dan wel hoe je het voor je ziet.
 
Ivo P

Ivo P

23/09/2014 12:52:19
Quote Anchor link
ik bedoel: geef stylesheet de extensie .php
dan wordt de inhoud door php geregeld

bijv css.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
header('Content-Type: text/css');
?>

h1 {
color: <?= $colorheader; ?>
}
 
Hans -

Hans -

23/09/2014 12:54:38
Quote Anchor link
Ooh echt? Dat wist ik niet! Dan kan ik daar denk wel mee vooruit! Thx Ivo!
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/09/2014 15:54:18
Quote Anchor link
Als extra mogelijkheid als je niet wil dat je het css bestand door php gegenereerd wordt:

Gewoon een <style></style> blok ONDERIN je <head></head> deel opnemen. Daar kun je dan de opmaak uit je css/style.css overschrijven of uitbreiden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<head>
  <link rel="stylesheet" type="text/css" href="/css/style.php" />
  <style>
    <?php echo $style; ?>
  </style>
</head>
Gewijzigd op 23/09/2014 15:54:54 door Frank Nietbelangrijk
 
Eddy E

Eddy E

23/09/2014 17:32:34
Quote Anchor link
Wat in zo'n geval ook het voordeel heeft dat het NIET gecached wordt.
Een extern stijlblad is handig voor meer, maar als het echt enkel 1 background-color is, is het ook wat overdreven om daar weer een http-request bij te maken en een stijlblad met 3 regels.
En dan zit je met de cache: als hij/jij/de klant zijn voorkeur-kleur wijzigt, moet je dus ook even forceren dat het stijlblad opnieuw opgevraagd wordt.

Gewoon zoals Frank NietBelangrijk zegt: in een <style> zetten.
Tegenwoordig lijkt de trend mij dat je de <link>'s juist onderaan </html> zet in verband met snelheid.

In je HTML (in je HTML-bestanden) kan je bijvoorbeeld de class 'gebruiker_kleur' (of engels: 'user_color') meegeven.
In je <style> doe je dan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<style>
.gebruiker_kleur
  {
  background-color: <?php echo $user['gebruiker_kleur']; ?>;
  }
</style>


Toevoeging op 23/09/2014 17:35:56:

http://www.online-bijbel.nl/ heeft zoiets.
Even een paar keer F5-en, dan zie je het groen/blauw/oranje, willekeurig wisselen.

Die website is van mijn hand (destijds, al heel wat jaartjes geleden), maar dat systeem zit daar ook in (dacht ik).
Op http://www.online-bijbel.nl/opmaak.php tref je dan ook het PHP-CSS-bestand aan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
font.kleur
    {
    color: #6DAB23;
    }
Gewijzigd op 23/09/2014 17:37:25 door Eddy E
 
Hans -

Hans -

23/09/2014 17:40:49
Quote Anchor link
Bedankt voor jullie antwoorden

enkel gaat het echt om meerdere background-colors (ongeveer 200 snel gezegd)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/09/2014 19:45:59
Quote Anchor link
Jeremy Evers op 23/09/2014 17:40:49:
Bedankt voor jullie antwoorden

enkel gaat het echt om meerdere background-colors (ongeveer 200 snel gezegd)


Ja en?
Bedoel je dat er ca. 200 in één keer meegegeven moeten worden in de css?
Dat kan allemaal met PHP. Waar zie je dan de beren op de weg?


Toevoeging op 23/09/2014 20:03:45:

heb je er overigens al aan gedacht dat je een element meerder class-en kunt geven?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
.content-div {
  font: Arial, Helvetica, sans-serif;
  color: #333;
}

.user-background {
  background-color:#abcdef;
}

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<p class="content-div user-background">dit is een paragraaf</p>
Gewijzigd op 23/09/2014 19:48:23 door Frank Nietbelangrijk
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.