所以我一直在寻找Sass和LESS的PHP项目。我一直认为CSS需要一些可编程性。遵守体面的软件工程实践(定义一次并在任何地方使用它等)。
几年前,我开始使用PHP编写CSS来生成CSS。这是一个(半人为的)片段:[myCSS.css.php]
<?php
header('Content-Type: text/css');
require_once 'Config.php';
echo <<<CSS
#container {
width: $containerWidth$widthUnits;
min-height: $containerHeight$heightUnits;
height: auto !important;
height: $containerHeight$heightUnits;
color: $containerFG;
background-color: $containerBG;
border-color: $containerBorder;
}
CSS
?>
为什么当你可以继续使用PHP并在你的代码和CSS中共享定义时,沿着Sass / LESS,Compass路径走下去?它还避免使用大量额外的工具来增加支持,维护,更新和培训的复杂性。
一个明显的反对意见是服务器上存在生成CSS输出的运行时开销。只有当.CSS.PHP文件发生变化时,才能通过让PHP代码生成并提供CSS来轻松解决这个问题 - 这是一种简单的缓存形式。
我有一种更复杂的缓存形式,其中单个CSS.PHP文件合并来自多个CSS源文件的内容,处理所有包含并将它们返回到客户端。这节省了多个HTTP GET,大大缩短了页面加载时间。如果有人感兴趣,我很乐意分享这些代码。它长约50行(代码,不包括评论)。
我可以看到你可能被迫使用Saas / LESS如果你想要或必须使用Foundation或Bootstrap或类似的东西,但我认为答案就是拥有一个像样的基于PHP的响应框架。
那么,为什么我会选择Saas或LESS呢?
答案 0 :(得分:8)
可能值得你阅读separation of concerns。没有详细说明,分离风格和内容意味着它们松散耦合,可以在不影响另一个的情况下进行更改。
在您的示例中,SASS或LESS是扩展CSS的样式语言,并允许其他功能。虽然他们提供的内容可以在PHP中完成,但这意味着设计人员现在需要了解PHP才能更改页面样式。
对于个人项目,自己动手制作的PHP解决方案可能是合适的,但随着项目的发展和更多人参与其中,明确分离角色变得非常重要。
关于SASS和LESS,他们提供了定义样式的分层方法,作为一个简短的例子:
ul {
color: green;
>li {
color:red;
}
a {
colour:blue;
}
}
相当于:
ul { color:green }
ul > li { color:red }
ul a { color:blue }
它们是围绕HTML和CSS的级联层次结构设计的,其方式与PHP不同。