好的,我正在做这个网站。它主要由PHP提供支持。我有一个header.php和footer.php文件将被包含在内,以获得更清洁的工作区域。问题是,我的主页(主页)使用main.css文件。新闻页面有许多类似的功能,所以它也使用main.css文件,但一些特定的设置被news.css文件覆盖。当它全部是HTML时,我很容易使它工作(只需先调用main.css然后调用news.css)。但是现在由于样式表调用是在一个公共的头文件中,我在主页上得到了一些意想不到的和不需要的CSS效果。
在PHP中有什么方法,某种if语句,我可以用来告诉我的浏览器只在加载news.php时加载news.css文件?
感谢!!!
答案 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/