网站开发日志

2009年4月17日星期五

分享家:Addthis中国

PHP实用代码系列 - 控制CSS

许多网站都提供换肤的功能,这种动态CSS的换肤技术通常是通过Javascript来实现,比如你可以准备两个CSS样式文件(分别定义不同的颜色,背景图等等),当用户点击选择某个样式后,触发自定义Javascript函数来更改CSS。但在这篇文章里,我要介绍的不同的方法,即使用PHP来控制页面的CSS样式。和Javascript的方法相比,这种方法应该算是真正意义上的动态CSS,因为它是用PHP输出CSS样式文件。例如:通过PHP函数,我们可以在一天的不同时段或者某个特别的日子(例如圣诞节),输出不同的CSS样式。

先看看演示,接下来要介绍如何实现这一特效。

首先使用HTML的link标签引用外部CSS样式文件:

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

注意: 这里被引用的css文件不是常规的.css文件,而是.php文件。

然后在style.php文件里,根据需要定义一些变量,然后输出css文件:

<?php
header("Content-type: text/css");
$ntime=date("G"); //取得现在的时间(小时)
$ntime += 8; //因为服务器的时间不准,所以这里做了些调整
if($ntime>=0 and $ntime<11){
  $bg = '#ffc';
  $font_color = '#222';
}
elseif ($ntime>=11 and $ntime<14){
  $bg = '#c36';
  $font_color = '#fff';
}
elseif ($ntime>=14 and $ntime<18){
  $bg = '#9cc';
  $font_color = '#555';
}
else{
  $bg = '#333';
  $font_color = '#ffc';
}
?>
body {
 background:<?php echo "$bg" ?>;
 color:<?php echo "$font_color" ?>;
}
a {color:<?php echo "$font_color" ?>;}
a:hover {text-decoration:none;}

上面的PHP代码只是根据不同的时间段,定义背景和字体颜色。在实际运用中,你还可以根据不同的节日来设置CSS的属性变量。总之,你可以根据需要,使用PHP来完全控制CSS。特别注意:在PHP文件的顶部要先送出一个Header:header("Content-type: text/css"); 表明输出的类型为CSS。

代码及演示

标签: ,

相关文章:

1 条评论:

发表评论

指向此帖子的链接: