我正在一个主页背景较暗的网站上工作,但所有其他网页都有白色背景。
我正在使用pho来包含一个头文件,以便在每个页面上显示徽标,导航栏,电话详细信息等。
由于主页背景较暗,徽标上有白色文字,但其他页面上的徽标使用时带有深色文字。
我正在寻找一种使用php的方法,所以我在每个页面上都包含一个头文件。如果主页有一类“主页”,则显示带有白色文本的徽标图像,并在所有其他页面上显示带有深色文本的徽标图像。
这些内容:
if (body class="home") {
<img src="images/logo-with-white-text" />
else {
<img src="images/logo-with-dark-text" />
};
这可能吗?
非常感谢任何帮助或建议:)
答案 0 :(得分:4)
我假设您的主页目前看起来像这样:
<html>
<head>...</head>
<body class="home">
...
<?php include 'header.php'; ?>
...
您可以将该类设为变量,并从包含的头文件中引用此变量:
<?php $class = 'home'; ?>
<body class="<?php echo $class; ?>">
...
<?php include 'header.php' ?>
...
在header.php中:
<?php if (isset($class) && $class == 'home'): ?>
<img src="images/logo-with-white-text" />
<?php else: ?>
<img src="images/logo-with-dark-text" />
<?php endif; ?>
答案 1 :(得分:3)
您可以使用以下代码段检查您是否在主页上(具体取决于您的确切实施):
if (basename($_SERVER['SCRIPT_NAME']) == 'index.php') {
// home page
}
else {
// some other page
}
$_SERVER['SCRIPT_NAME']
包含相对于主机的实际加载文件,直到查询字符串:
http://example.com/my/folder.php?a=b =&gt; /my/folder.php
有关详细信息,请查看basename
in the PHP manual。
答案 2 :(得分:1)
$_SERVER['REQUEST_URI']
包含当前页面网址(在域名之后)。您可以检查该页面是否包含主页网址。
根据您的设置,您可以使用
<?php if ($_SERVER['REQUEST_URI'] == '/') : ?>
<img src="images/logo-with-white-text" />
<?php else: ?>
<img src="images/logo-with-white-text" />
<?php endif; ?>
答案 3 :(得分:1)
如果您使用image replacement technique来显示图片,则不需要PHP。
基本上,您使用<h1>
或其他内容作为徽标,使用文字,然后使用否定text-indent
隐藏文字,设置高度和宽度,并使用背景图片作为徽标。例如:
<h1 id="logo">My Website</h1>
#logo {
text-indent:-999px;
background:url(/path/to/logo.png);
height:100px;
width:500px;
}
然后,在CSS中,您可以根据正文类更改背景图像:
body.home #logo {
background:url(/path/to/alternate-logo.png);
}
您实际上也可以在图像上替换图像:
img {
/* 500x100 replacement image */
background:url(http://lorempixum.com/500/100);
/* hide original image */
width:0;
height:0;
/* use padding to set width/height of replacement */
padding:50px 250px;
}