CSS Constants - More examples
(Page 6 of 7 )
There is no end to the usefulness of this approach. We can reuse cookie data or grab selector names from a database or a parsed document. We could allow an XML notation for the CSS and turn it into valid CSS on the fly.
An example of how to use parameters sent to the page could be to allow visitors to define a width of the content:
<?php
header('content-type:text/css');header("Expires: ".gmdate("D, d M Y H:i:s", (time()+900)) . " GMT");
// grab the parameter w and set the variable w to its value
// if the parameter is not an integer, set w to 740
$w=740;
if(isset($_GET['w']))
{ $w=preg_match('/(\D)/',$_GET['w'])?$w:$_GET['w'];}
/* Company Colours */
$blue='#369';
$green='#363';
$lgreen='#cfc';
?>
#boundary{ width:<?php echo $w;?>px;
}
ul#navigation{ background:<?php echo $blue;?>;
color:#fff;
}
h1{ border-bottom:1px solid <?php echo $green;?>;
}
Or we can apply different color schemes according to the section:
<?php
header('content-type:text/css');header("Expires: ".gmdate("D, d M Y H:i:s", (time()+900)) . " GMT"); $self=$_SERVER['PHP_SELF'];
/* Colour schemes */
if (preg_match('/aboutus/',$self)){// About us
$colour1='#369';
$colour2='#69c';
$colour3='#9cf';
}
else if (preg_match('/clients/',$self)){// Clients
$colour1='#963';
$colour2='#c96';
$colour3='#fc9';
}
else if (preg_match('/downloads/',$self)){// Downloads
$colour1='#693';
$colour2='#9c6';
$colour3='#cf9';
}
?>
ul#navigation{ background:
<?php echo $colour1;?>;
color:#fff;
}
h1{ border-bottom:1px solid
<?php echo $colour3;?>;
color:
<?php echo $colour2;?>;
}
Each of these examples requires the maintainer of the site to know about PHP, and may give her the chance to break it or add unsafe code. If we want to ensure that we have something like CSS constants with a less steep learning curve and less power to the maintainer, we can parse a CSS file with PHP.
Next: Parsing CSS with PHP >>
More Style Sheets Articles
More By Chris Heilmann