Förtydligande
Jag vill använda en CSS-fil som genereras av PHP och gör därför enligt Mattes förslag - men då validerar inte index.php som CSS:n inkluderas i. Se nedan. Varför?
Matte skrev:
Du kan använda dig av
<link rel="stylesheet" type="text/css" href="css.php" />
Och sedan överst i PHP-filen lägga:
header("Content-type: text/css");
Sedan är det bara att arbeta med PHP i vanlig ordning för att generera den CSS du önskar.
Tänk bara på att CSS-filer cachas i webbläsaren, så är det att du ska visa varierat innehåll i CSS-filen då får du se till att du har headers som gör att den inte cachas. Men då faller å andra sidan lite av idén med en CSS-fil.
Personligen hade jag gjort så att jag länkat in två CSS-filer i mina skript, och eventuellt med PHP styrt vilka länkar som skulle visas.
Jag har just provat denna variant efter bästa förstånd. Tyvärr räckte inte förståndet hela vägen... ;) Sidan som inkluderar filen ser ut precis som jag vill och förstår uppenbarligen CSS-filen, men den vägrar tvärt att validera på http://validator.w3.org/ .
Validatorn skrev:
Below are the results of attempting to parse this document with an SGML parser.
1. Error Line 6 column 57: character data is not allowed here.
<link rel="stylesheet" type="text/css" href="div.php" />
You have used character data somewhere it is not permitted to appear. Mistakes that can cause this error include putting text directly in the body of the document without wrapping it in a container element (such as a \<p\>aragraph\</p\>) or forgetting to quote an attribute value (where characters such as "%" and "/" are common, but cannot appear without surrounding quotes).
:q Va?
Starten på index.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="div.php" />
<title>$titel</title>
</head>
Utdrag ur div.php
<?php
header("Content-type: text/css");
$bg = '#FCFCFC';
$txt = '#000000'; /*svart*/
$rubrik = '#009933';
//...
$css = <<< EOCSS
body {
/*font-family: 'Comic Sans MS', 'Georgia', 'Arial';*/
font-size: "$fs";
background-color: "$bg";
color: "$txt";
}
h1, h2, h3, h4, h5, h6 {
color: $rubrik;
}
p {
color: $txt;
font-size: fs;
}
/* ...*/
EOCSS;
echo $css;