加载特定页面的特定css文件?

时间:2013-08-31 21:12:51

标签: php css

好的,我正在做这个网站。它主要由PHP提供支持。我有一个header.php和footer.php文件将被包含在内,以获得更清洁的工作区域。问题是,我的主页(主页)使用main.css文件。新闻页面有许多类似的功能,所以它也使用main.css文件,但一些特定的设置被news.css文件覆盖。当它全部是HTML时,我很容易使它工作(只需先调用main.css然后调用news.css)。但是现在由于样式表调用是在一个公共的头文件中,我在主页上得到了一些意想不到的和不需要的CSS效果。

在PHP中有什么方法,某种if语句,我可以用来告诉我的浏览器只在加载news.php时加载news.css文件?

感谢!!!

4 个答案:

答案 0 :(得分:2)

header.php中,制作if语句,如:

if ($current_page == "join") {
  echo "stylesheet..";
} else {
  echo "another stylesheet..";
}

包含header.php时,请设置一个满足if语句的变量。

$current_page = "join";
include '../header.php';

答案 1 :(得分:1)

你可以按照以下方式做点什么:

<?php 
if (stristr($_SERVER['SCRIPT_NAME'], 'news.php')) {
   print('<link rel="stylesheet" type="text/css" href="/news.css">'); 
} 
?>

答案 2 :(得分:0)

您可以执行以下操作:

if ($_SERVER['PHP_SELF'] == 'http://url-to-news-page')
    echo '<link rel="stylesheet" href="path-to-stylesheet">';

或类似的东西,如果你不想指定网址,只想指定路径(更好):

if ($_SERVER['SCRIPT_NAME'] == '/path/to/news.php')
    echo '<link rel="stylesheet" href="path-to-stylesheet">';

答案 3 :(得分:0)

我不喜欢为每个部分使用单独的CSS文件。我更喜欢尽可能低地保持http请求。此外,在我看来,拥有一个单独的css文件可以使未来的维护变得更容易。

对于将来的项目,您还可以尝试为每个站点部分声明特定的主体类或ID。

<body class="news">
<div id="header"....

这样,您可以使用相同的CSS文件,在需要时覆盖CSS的特定部分。

例如,如果您需要为新闻部分设置不同的div #header样式,则可以在CSS中执行以下操作:

#header {
height: 120px;
background-color: #CCC;
}

.news #header {
height: 40px;
background-color: #000;
}

如果在header.php include中声明了body标记,则可以使用任何建议的方法动态添加body类:

if ($_SERVER['PHP_SELF'] == 'http://url-to-news-page') {
$body_class="news";
}

然后:

<body class="<?php echo $body_class;?>">

了解更多信息: http://css-tricks.com/id-your-body-for-greater-css-control-and-specificity/