我是一名前端开发人员,最近考虑使用 SASS 或 LESS 进行 CSS 开发。
但是,我不使用 Ruby,也不想依赖激活 JavaScript 的用户。有人对使用 PHP 项目使用 SASS 或 LESS 有任何提示吗?
在此处下载最新版本的lessphp 。
这是我如何尝试的示例:
<?php
require 'lessc.inc.php';
$less = new lessc('test.less');
file_put_contents('test.less.css', $less->parse());
?>
<html>
<head>
<title>Less CSS</title>
<link rel="stylesheet" href="test.less.css" type="text/css" />
</head>
<body>
<h1>This isn't supposed to be black!</h1>
</body>
</html>
还有我的 test.less 文件:
@color : #33ddff;
.colorful(@textcolor : red){
color : @textcolor;
}
h1{
.colorful(@color);
}
它对我有用,它是 php!
你现在有我写的两个选项:
两者都有很好的记录。我鼓励您尝试一下,如果您有任何问题,请告诉我。
安装红宝石。安装 SASS。使用 SASS。
它输出静态文件,因此您只需像其他任何 CSS 一样上传它们作为构建/发布过程的一部分。
看看这个教程: http: //net.tutsplus.com/tutorials/php/how-to-squeeze-the-most-out-of-less/
(谷歌搜索'less php'时的第4个条目)
作为我工作的一部分,我确实使用 sass 和 php。
您可以尝试PhamlP,因为这是我使用的。PhamlP
是Haml
和Sass
的港口PHP
。
您可以让 sass 解析器运行每个页面加载,或者您可以让它缓存css
它生成的内容。
这是被问到的相同问题。如果您想查看更多选项
您可以为此使用 PhpLessDemandBridge:https ://github.com/andyhausmann/PhpLessDemandBridge
您可以简单地在模板中使用它,例如:
<link rel="stylesheet" type="text/css" media="all" href="css/engine/css.php?file=bootstrap.less" />
引擎可以通过配置文件进行配置,您可以在其中定义较少文件和缓存文件的路径。
通过定义“css.php?file=bootstrap.less”,您将引擎指向引导文件,该文件会导入其他更少的文件,例如 Twitter Bootstrap 等。
我将它用于 Magento、TYPO3 CMS 等等。
在第一行中,我包含了 Twitter Bootstrap 所需的部分——之后我包含了我自己的主题和覆盖。
如果您正在使用 WordPress,您绝对应该查看WP LESS。您需要做的就是用or或 even指定一个.less
文件,它会为您将 LESS 代码编译成 CSS 代码。它还缓存生成的 CSS,因此您无需在每次页面加载时都进行 LESS 编译的开销。wp_register_style
wp_enqueue_style
add_editor_style
现在还有另一个 less 编译器可用:less.php
我在一些项目上有http://leafo.net/scssphp/ 。它对我很有效,这就是我所做的。
将 scssphp 安装到 lib/scssphp/
在 .htaccess
#Sass Parser: anything /css/FILENAME.css -> FILENAME.scss
RewriteRule ^css/(.*).css?$ style.php/$1.scss [NC,L]
在根文件夹中,我有 style.php:
<?php
require "lib/scssphp/scss.inc.php";
$scss = new scssc();
$scss->setFormatter("scss_formatter");
$server = new scss_server("ui", null, $scss);
$server->serve();
?>
在我的 HTML 中,我使用:
<link rel="stylesheet" href="/css/style.css">
在 /ui 我有我的实际 SCSS 代码文件:/ui/style.scss
一切正常。SCSSPHP 只是检查文件是否需要重新编译并透明地执行,否则发送缓存的版本。
为什么不直接使用 PHP 本身来动态生成 CSS?以下是 10 个很好的理由:
LESS 提供了 1 种笨拙、不熟悉的循环形式——而 PHP 提供了 4 种熟悉的原生循环形式(do、while、for、foreach)。
LESS 提供了 1 种笨拙、不熟悉的变量形式——而 PHP 提供了 6 到 12 种熟悉的原生数据结构:变量、数组、关联数组/哈希表、数组数组/多维数组、对象和数据库记录集。并且标准 PHP 库还提供了堆、栈、队列、映射、双向链表和固定数组。
LESS 不提供条件 - 而 PHP 提供 4 种熟悉的原生条件形式:if-then、if-then-else、case/switch 和三元运算符。
LESS 提供了 1 种尴尬的、不熟悉的包含文件的形式(导入)——而 PHP 提供了 2 种熟悉的原生形式:include 和 require。
LESS 提供了各种笨拙、不熟悉的 CSS 结构形式——而 PHP 提供了熟悉的、原生的、面向对象的代码结构形式。
LESS 本质上需要学习一门新的编程语言,并随着时间的推移而变化——而 PHP 则利用您现有的知识。
LESS 使您的代码的可读性和一致性降低 - 而 PHP 中的预处理 CSS 使您的代码保持一致并使其更具可读性。
LESS 需要采取额外的“编译”/预处理步骤,并且需要维护 CSS 文件的多个版本 - 而 PHP 可以从单个源动态动态生成 CSS(如果您不关心性能)或者它可以像 LESS 预处理器一样生成最终的“编译”/预处理版本(如果您担心性能)。
LESS 需要下载和安装第三方预处理器——而 PHP 已经提供了该功能。
LESS 只能用于 CSS - 而 PHP 可用于动态生成 CSS、HTML、JavaScript、jQuery 等。
像 LESS 和 SASS 这样的 CSS 预处理器可能是绝望的前端开发人员的救星,因为他们无法使用 PHP 等后端工具。但是对于 PHP 开发人员来说,这些会适得其反,而且功能也不那么强大。以我的拙见,这似乎是流行语狂热和附加狂热疯了。PHP 旨在提供 LESS 的所有功能以及更多功能。