0

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

我发现我可以通过声明将 PHP 页面打印为样式表:

header('Content-Type: text/css');

在 CSS 页面的顶部。

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

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

在样式表中,我想在 CSS3 前面呼应它。

最初我是通过为每个文件创建一个单独的 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;} }
4

3 回答 3

2

如果您只想能够在您的 css(不一定是 php)中使用变量,您可以考虑使用less

于 2013-08-01T15:52:35.003 回答
1

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

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

但是,我认为这对您的用例来说不是必需的。-*-在 css 文件中静态包含所有各种选项实际上并不少见:

body {
    -moz-border-radius: 3px;
    border-radius: 3px;
}

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

于 2013-08-01T15:50:57.137 回答
0

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

@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)
}
于 2014-02-19T21:14:22.970 回答