有没有办法用PHP控制外部(第三方)CSS?

时间:2011-05-08 19:43:14

标签: php css

我想使用PHP控制第三方网站的CSS。假设我想更改网站的字体大小,我将从用户那里输入。我能这样做吗?

5 个答案:

答案 0 :(得分:2)

每次都可以生成PHP生成的整个.css文件,但这有点浪费CPU。相反,为什么不利用css的级联性呢?让PHP输出一小段CSS到每个页面中以覆盖.css文件中的字体集:

<head>
    <link rel="stylesheet" href="styles.css" type="text/css">
    <style type="text/css">
       #some_element {
          font-size: <?php echo $user_selected_font_size ?>px;
       }
    </style>

    etc...

这样你就不必每次都动态生成整个.css,它可以被客户端的浏览器缓存,你仍然可以给它们选择可选的字体大小。

答案 1 :(得分:2)

您可以解析并重写当前的css文件。可能更好的选择是在主页面中加载2个CSS文件,一个是默认的,另一个是在用户添加输入后由PHP生成的。所有第二个CSS文件都将具有必须更改的属性(例如字体或字体而不是div等)。

另一个解决方案是存储在数据库用户输入中并从file.php中的数据生成CSS代码:

print "
    <style type=\"text/css\">
      body {
        color: purple;
        background-color: {$color} }
      </style>
";

虽然$color是从DB创建的局部变量。

答案 2 :(得分:1)

执行此操作的首选方法是使用JavaScript动态修改某些元素的样式。请查看jQuery

或者(不太喜欢),您可以将CSS设为PHP文件(使用.php扩展名,但将其包含在.css文件中)并在其中输入一些变量。

答案 3 :(得分:1)

是的,您可以创建mystyle.php并将其链接为&lt; link rel =“stylesheet”type =“text / css”href =“[yourdomain] /mystyle.php”&gt;
在mystyle.php中,你可以做这样的常见PHP:

html, body{
    font-size: <?php mysql_... ... ?>
}

此外,您可以在.htaccess文件中添加一些mod_rewrite功能,以便为第三方网站提供访问mystyle.php作为mystyle.css的可能性(但这当然是一个可选功能,一切都将是即使没有.htaccess也可以。)

答案 4 :(得分:0)

只有在PHP以某种方式提供外部css时才能执行此操作。

我建议最简单的方法可能是通过使用Javascript操作DOM来覆盖CSS定义,或者(更简单!)包括在您使用PHP呈现的页面内联的<style>标记