CSS样式表中的PHP变量

CSS样式表中的PHP变量,php,database,css,variables,Php,Database,Css,Variables,我希望将PHP变量引入样式表(即CSS) 我已经计算出可以通过声明以下内容将PHP页面打印为样式表: header('Content-Type: text/css'); 在CSS页面的顶部 但是,我传递的变量没有显示在样式表中 在这种情况下,PHP变量$css将是'-webkit-','-moz-','-ms-',或'-o- 在样式表中,我想在CSS3前面回显它 最初,我是通过为每个CSS文件创建一个单独的CSS文件来实现这一点的,但是这样会更有效,并允许我从数据库传递真正的样式,例如背景颜色

我希望将PHP变量引入样式表(即CSS)

我已经计算出可以通过声明以下内容将PHP页面打印为样式表:

header('Content-Type: text/css');
在CSS页面的顶部

但是,我传递的变量没有显示在样式表中

在这种情况下,PHP变量
$css
将是
'-webkit-'
'-moz-'
'-ms-'
,或
'-o-

在样式表中,我想在CSS3前面回显它

最初,我是通过为每个CSS文件创建一个单独的CSS文件来实现这一点的,但是这样会更有效,并允许我从数据库传递真正的样式,例如背景颜色和字体

可能吗?怎么做

示例PHP文件称为CSS链接

<?php
global $css;
header('Content-Type: text/css');

?>
.wheel {
    position:absolute; top:50%; left:50%; height:32px; width:32px; margin:-16px; <?php echo $css;?>transition:opacity 0.3s;
}
.wheel li {
    width:3px; height:9px; border-radius:2px; background:#555; <?php echo $css;?>animation:loading 1.2s infinite; position:absolute; <?php echo $css;?>transform-origin:2px 16px; left:16px; opacity:0; box-shadow:inset 0 0 2px rgba(255,255,255,0.4);
}

@<?php echo $css;?>keyframes loading { 0% {opacity:0.2;} 50% {opacity:0.9;} 100% {opacity:0.2;} }

.车轮{
位置:绝对;顶部:50%;左侧:50%;高度:32px;宽度:32px;边距:-16px;过渡:不透明度0.3s;
}
李先生{
宽度:3px;高度:9px;边框半径:2px;背景:#555;动画:加载1.2s无限;位置:绝对;变换原点:2px 16px;左侧:16px;不透明度:0;框阴影:插入0 0 2px rgba(255255,0.4);
}
@关键帧加载{0%{opacity:0.2;}50%{opacity:0.9;}100%{opacity:0.2;}

您可以使用与HTML相同的方法执行此操作:

<?php 
    header('Content-Type: text/css'); 
    $css = $_GET['css']; // or wherever your're initializing the variable from...
?>
body {
    <?= $css ?>border-radius: 3px
}

只需添加所有有效选项,浏览器就会确定哪些选项对它最有效。这也意味着您可以避免浏览器嗅探这一枯燥且容易出错的任务。

您可以使用与HTML相同的方法来完成此任务:

<?php 
    header('Content-Type: text/css'); 
    $css = $_GET['css']; // or wherever your're initializing the variable from...
?>
body {
    <?= $css ?>border-radius: 3px
}

只需添加所有有效选项,浏览器就会确定哪些选项对它最有效。这也意味着你可以避免浏览器嗅探的枯燥和容易出错的任务。

< P>如果你只想在CSS中使用变量(不一定是PHP),如果你只想在CSS中使用变量(不一定是PHP),你可以考虑使用< /P> < P>。你可以考虑使用

< P> SASS CSS扩展,允许你使用变量,而不需要实际使用PHP和它附带的缺点。mixin将简化特定于供应商的样式规则的生成

@mixin vendor-prefix($name, $argument) {
  -webkit-#{$name}: #{$argument};
  -ms-#{$name}: #{$argument};
  -moz-#{$name}: #{$argument};
  -o-#{$name}: #{$argument};
  #{$name}: #{$argument};
}
p {
  @include vendor-prefix(hyphens, auto)
}

SASS CSS扩展允许您使用变量,而不需要实际使用PHP及其带来的缺点。mixin将简化特定于供应商的样式规则的生成

@mixin vendor-prefix($name, $argument) {
  -webkit-#{$name}: #{$argument};
  -ms-#{$name}: #{$argument};
  -moz-#{$name}: #{$argument};
  -o-#{$name}: #{$argument};
  #{$name}: #{$argument};
}
p {
  @include vendor-prefix(hyphens, auto)
}

我认为这需要更多的信息:你在哪里回显变量?你能展示一些你正在使用的代码吗?你认为“
global$css;
”在做什么?这是整个PHP文件还是包含在另一个文件中?我不想玩情绪杀手,但这闻起来像是可怕的练习不?如何检测供应商前缀?重点是什么?您可能想考虑使用CSS预处理器,如更少,SASS…可能的重复我认为这需要更多的信息:你在哪里回显变量?你能展示一些你正在使用的代码吗?你认为“
global$css;
”在做什么?这是整个PHP文件还是包含在另一个文件中?我不想玩情绪杀手,但这闻起来像是可怕的练习不?如何检测供应商前缀?重点是什么?您可能想考虑使用CSS预处理器,如更少,SASS…可能重复+1,也有反对动态CSS生成的论点:@Kian,完全同意。而且,这并没有什么好的论据。@Kian,您可以缓存页面。@PaulProgrammer::如果您允许用户确定他们的web配置文件的显示方式(即样式),该怎么办?您需要按每个用户将该信息存储在数据库中。你不会吗?我会生成单独的CSS文件(见下面@Benubird的建议),并确定从配置文件中选择哪个CSS文件。+1,也有反对动态CSS生成的论点:@Kian,完全同意。而且,这并没有什么好的论据。@Kian,您可以缓存页面。@PaulProgrammer::如果您允许用户确定他们的web配置文件的显示方式(即样式),该怎么办?您需要按每个用户将该信息存储在数据库中。你不会吗?我会生成单独的CSS文件(见下面@Benubird的建议),并确定从配置文件中选择哪个CSS文件。