我想做一个导航栏,其中一个元素的背景颜色会改变,如果用户将在该子页面。
检查url是否包含所选字符串的代码:
<?php
$url = $_SERVER['REQUEST_URI'];
//echo ($url);
if (strpos($url, 'index.php') == true) {
//echo 'Current page contains index.php';
$atm = "#2275A8";
} else {
$atm = "#00427A";
}
?>
这是同一文件的一部分,保存为。php文件
<?php
header("Content-type: text/css");
?>
.ico1 {
background: <?php echo $atm; ?>;
}
如果我把我的"检查部分"od代码索引,它工作得很好;返回真或假,但由于某种原因没有将参数传递给样式文件。
所以现在我把"检查部分"到样式文件,但是,无论我在哪个子页面,它返回相同的结果(总是正确的,即使'index'不是url的一部分)。
你知道怎么处理这个吗?:)
在style.css文件中定义你想要的样式的类,并在php文件中动态地改变你想要改变样式的元素的类,如下面的例子所示。
style.css
.ico1 {
background: color1;
}
.ico2 {
background: color2;
}
index.php(或包含导航条的文件)
<?php
$url = $_SERVER['REQUEST_URI'];
if (strpos($url, 'index.php') == true) {
//echo 'Current page contains index.php';
$atm = "ico1";
} else {
$atm = "ico2";
}
?>
...
<div class="<?php echo $atm;?>"> // navbar
为什么不使用这两个css类,并在你想要应用这些类的元素中创建一个条件:
CSS.ico1-0 {
background: #2275A8;
}
.ico1-1 {
background: #00427A;
}
PHP [...]
<div class="<?php echo (strpos($url, 'index.php') === true) ? 'ico1-0' : 'ico1-1'; ?>"></div>
[...]
strpos永远不会返回true。它要么返回false,要么返回整数。所以试着像下面这样。
if (strpos($url, 'index.php') !== false)