我想制作导航栏,如果用户在该子页面上,则一个元素的背景颜色会发生变化。
用于检查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; ?>;
}
如果我把我的“ckecking part”od代码放在索引上,它就能很好地工作;返回true或false,但由于某种原因,它不会将参数传递给样式文件 所以现在我把“检查部分”放到样式文件中,但是,不管我在哪个子页面上,它返回相同的结果(即使'index'不是url的一部分,也总是正确的。)
有关如何处理此问题的任何想法? :)
答案 0 :(得分:1)
在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
答案 1 :(得分:1)
为什么不拥有两个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>
[...]
答案 2 :(得分:0)
strpos将永远不会返回true。它将返回false或返回整数。所以试试如下。
if (strpos($url, 'index.php') !== false)