php variable in CSS
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.
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.
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.
en dan in style.php voor de zekerheid ook
opnemen
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.
dan wordt de inhoud door php geregeld
bijv css.php
Ooh echt? Dat wist ik niet! Dan kan ik daar denk wel mee vooruit! Thx Ivo!
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)
1
2
3
4
5
6
2
3
4
5
6
<head>
<link rel="stylesheet" type="text/css" href="/css/style.php" />
<style>
<?php echo $style; ?>
</style>
</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
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)
1
2
3
4
5
6
2
3
4
5
6
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:
Gewijzigd op 23/09/2014 17:37:25 door Eddy E
enkel gaat het echt om meerdere background-colors (ongeveer 200 snel gezegd)
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)
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)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
.content-div {
font: Arial, Helvetica, sans-serif;
color: #333;
}
.user-background {
background-color:#abcdef;
}
font: Arial, Helvetica, sans-serif;
color: #333;
}
.user-background {
background-color:#abcdef;
}
Gewijzigd op 23/09/2014 19:48:23 door Frank Nietbelangrijk