我需要根据URL中的查询字符串更改网页上的CSS ...但我是PHP的新手,并且无法找到足够的示例来解决这个问题。
基本上当用户点击菜单链接,然后发送到“aboutUs.php”页面时,我需要在aboutUs.php页面上的CSS根据字符串查询进行更改。
答案 0 :(得分:2)
您可以将style.css
更改为style.php
,您可以在页面中将其作为样式表加载。
您需要在php文件中包含标题类型:
<?php
header("Content-type: text/css");
?>
然后动态生成内容。
希望我没有错过理解这个问题。这可以帮助您更改css文件的内容。
如果你有多个css文件,并且你想根据aboutus.php
的参数导入其中一个,那就是另一个故事。
答案 1 :(得分:2)
如果我理解你想要的东西:
if (isset($_GET['query'])){
$query = $_GET['query'];
}else{
$query = NULL;
}
然后是这样的:
if ($query == 'x'){
echo "
<style>
Whatever style you need...
</style>
";
}elseif ($query == 'y'){
echo "
<style>
Whatever other style you need...
</style>
";
}else{
echo "
<style>
Whatever default style you need...
</style>
";
}
当然你可以回复样式表链接而不是样式标签,但逻辑是一样的。
答案 2 :(得分:1)
在你的程序的头部(你将包括css样式表),做一个简单的if else:
if (isset($REQUEST['query_string'])) {?>
stylesheet link
<?php } else { ?>
stylesheet link 2
<?php } ?>
答案 3 :(得分:1)
您可以将选定的CSS保存到cookie:
if (isset($_GET['setstyle'])) {
setcookie('style', $_GET['setstyle'], time()+60*60*24*30, '/');
}
然后可以像这样阅读样式:$_COOKIE['style']
。
http://example.com/?setstyle=black - &gt;样式设置为“黑色”
答案 4 :(得分:1)
不是很漂亮的解决方案,但例如像这样的东西可以工作
<? php
if($str=="main"){
echo '<link rel="stylesheet" type="text/css" media="all" href="/css/main.css" />'
}
else if($str=="other"){
echo '<link rel="stylesheet" type="text/css" media="all" href="/css/other.css" />'
}
?>
小心做类似的事情:
<link rel="stylesheet" type="text/css" media="all" href="/css/$str.css" />
这不是一种非常安全的方式,除非你做一个具有可能值的数组,例如
$possibleCss = array("main", "other");
if(in_array($str, $possibleCss){
<link rel="stylesheet" type="text/css" media="all" href="/css/$str.css" />
}
答案 5 :(得分:1)
从here了解问题的目的,我会将所有常见的CSS放在样式表中,并简单地为您关注的元素调出特定的display
属性。在主样式表中创建所有元素display: none
。
<link type="text/css" rel="stylesheet" href="mainStyleSheet.css" />
<style type="text/css">
<?php
if (isset($_GET['section'])){
// Sanitize
$section = preg_replace('/[^a-zA-Z]/', $_GET['section']);
echo '#' . $section . ' { display: block; }';
}
?>
</style>
在这种情况下,section
是一个参数,设置为ourMisson
,ourHistory
等,如下所示:
http://beta.***.com/aboutUs.php?section=ourMission
答案 6 :(得分:1)
$style = $_GET["style"];
header("Content-type: text/css");
if($style=="blue")
echo ".class{background-color:blue;}";
else
echo ".class{background-color:white;}";
<link rel="stylesheet" type="text/css" href="style_file.php?style=blue" />