基于PHP字符串查询更改CSS

时间:2012-01-23 18:58:13

标签: php css

我需要根据URL中的查询字符串更改网页上的CSS ...但我是PHP的新手,并且无法找到足够的示例来解决这个问题。

基本上当用户点击菜单链接,然后发送到“aboutUs.php”页面时,我需要在aboutUs.php页面上的CSS根据字符串查询进行更改。

7 个答案:

答案 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是一个参数,设置为ourMissonourHistory等,如下所示:

http://beta.***.com/aboutUs.php?section=ourMission

答案 6 :(得分:1)

  1. 您需要创建一个带文本/ css的php文件,您可以使用get参数调用此文件。 例如:
  2. $style = $_GET["style"]; header("Content-type: text/css"); if($style=="blue") echo ".class{background-color:blue;}"; else echo ".class{background-color:white;}";

    1. 使用get参数调用css
    2. <link rel="stylesheet" type="text/css" href="style_file.php?style=blue" />