我想使用PHP控制第三方网站的CSS。假设我想更改网站的字体大小,我将从用户那里输入。我能这样做吗?
答案 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>
标记