CSS样式表中的PHP变量
我希望将PHP变量引入样式表(即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文件来实现这一点的,但是这样会更有效,并允许我从数据库传递真正的样式,例如背景颜色
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文件。