我想通过几种方式改进css语法,例如:
link-color1 = #fff
width:500-3-2
这看起来很愚蠢,但有变量: width: container - inner - 3px;
#foo{background:#ddd;color:#eee;} #bar {@extend: #foo;color:#fff;}
-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;
替换为
border-radius:3px;
这些只是我的想法的例子,但是库可以是不同的
我正在寻找一个php库,解析一个sytax类似于css的文件,并生成一个有效的css文档。
这很重要我不想将php sytax插入我的css 文件,因为:
#foo {color:<?php echo $color1; ?>;}
SASS是离线工作的非常好的解决方案,但我仍在搜索PHP解决方案,因为:
这是我写的示例:
在/css/index.php
用法:
@color1: #1a1a1a;
@color2: #444444;
div#container {background:@color1;}
div#inner {background:@color2;}
HTML链接:
<link rel="stylesheet" type="text/css" href="/css/?main.css" />
这仅适用于颜色。我需要一个解析器来列出所选的选项。
答案 0 :(得分:5)
试试SASS。它支持变量,数学计算,样式继承和更多功能。它没有在PHP中实现,但它会生成静态文件。
答案 1 :(得分:4)
您是否尝试过CSS Crush?
答案 2 :(得分:1)
你可以用php包含你的css:
<link href="style.php" rel="stylesheet" type="text/css" />
在你的style.php中,你可以:
header("Content-Type: text/css");
此时你可以使用php的所有功能来做你想做的事情:
<?php
$rules = 'font-size:11px;padding:5px;';
?>
td { <?php echo $rules; ?> }
继承:
<?php
$parent=array( 'td' => 'color:;padding;etc;'
'p' => 'other rules'
//> other rules
);
?>
.inheritance {
<?php echo $parent['td']; ?>
//> other rules here
}
答案 3 :(得分:1)
我不认为这是一个好主意,特别是在生产环境中,但如果你坚持这样做,我建议只安装SASS并使用passthru()从php执行它
http://www.php.net/manual/en/function.passthru.php
喜欢这个
<?php
$css_path = '/'; // location of your real css files
$sass_cmd = 'sass -f'; // sass cmd
passthru($sass_cmd . $css_path . $_GET['cssfile'];
?>
通过
调用cssparse.php?cssfile=xyz.css
如果你想获得幻想,可以使用重写规则通过PHP脚本汇集所有* .css请求。
例如:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} \.css$
RewriteRule ^(.*\.css)$ cssparse.php?cssfile=$1
当您在浏览器中请求/example.css时, 它被重写为/cssparse.php?cssfile=example.css 它调用SASS并返回输出
答案 4 :(得分:0)
你想要做的只是一个好主意。每次用户加载CSS文件时,首先必须通过PHP函数生成“改进”版本的CSS文件。只有社交网站才需要用户可以自定义布局。然后必须从数据库加载自定义样式并使用PHP将其插入到CSS文件中。
对于没有此功能的网站,在解析CSS之后,没有区别。创建CSS文件对您来说更容易/更有效。
此外,如果您的CSS必须通过PHP解析器,则无法离线修改CSS。
答案 5 :(得分:0)