我是前端开发人员,最近考虑过使用SASS或LESS进行CSS开发。
但是,我不使用Ruby,而且我不想依赖拥有JavaScript活动的用户。有没有人有任何使用PHP项目使用SASS或LESS的技巧?
答案 0 :(得分:26)
下载最新版本的 lessphp here。
以下是我如何尝试的示例:
<?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!
答案 1 :(得分:10)
您现在有两种选择:
两者都有详细记录。我鼓励你试一试,告诉我你是否有任何麻烦。
答案 2 :(得分:5)
安装Ruby。安装SASS。使用SASS。
它输出静态文件,因此您只需将其作为构建/发布过程的一部分上传它们。
答案 3 :(得分:2)
看看这个教程: http://net.tutsplus.com/tutorials/php/how-to-squeeze-the-most-out-of-less/
(谷歌搜索'少php'时的第4个条目)
答案 4 :(得分:2)
PHP需要很多资源...好吧很多是相对的,但无论如何,你应该对输出css进行处理。 如果您使用的是Mac,请使用LESSapp。如果您使用的是Windows,请使用dotLEss(实际上它是一个库,可以集成到多个.NET项目中,但它有一个小命令行编译器,输出有效CSS文件)
答案 5 :(得分:2)
作为我工作的一部分,我确实使用sass与php。
您可以尝试PhamlP,因为这是我使用的。 PhamlP
是Haml
和Sass
到PHP
的端口。
您可以让每个页面加载运行sass解析器,也可以让它缓存它生成的css
。
答案 6 :(得分:2)
您可以使用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所需的部分 - 之后我将包含我自己的主题和覆盖。
答案 7 :(得分:2)
如果你正在使用WordPress,你一定要查看WP LESS。我所要做的就是指定.less
文件wp_register_style
或wp_enqueue_style
甚至add_editor_style
,并将您的LESS代码编译为CSS代码。它还会缓存生成的CSS,因此您不会在每次加载页面时都有LESS编译的开销。
答案 8 :(得分:1)
现在还有另外一个可用的编译器:less.php
答案 9 :(得分:1)
我在一些项目上有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只检查文件是否需要重新编译并透明地执行,否则发送缓存版本。
答案 10 :(得分:0)
为什么不使用PHP本身来动态生成CSS?以下是10个很好的理由:
LESS提供了一种笨拙,不熟悉的循环形式 - 而PHP提供了4种形式的熟悉的原生循环(do,while,for,foreach)。
LESS提供了1种笨拙,不熟悉的变量形式 - 而PHP提供了6到12种熟悉的本机数据结构:变量,数组,关联数组/散列表,数组/多维数组数组,对象和数据库记录集。标准PHP库还提供堆,堆栈,队列,映射,双链表和固定数组。
LESS不提供条件 - 而PHP提供4种熟悉的本机形式的条件:if-then,if-then-else,case / switch和三元运算符。
LESS提供了一种笨拙,不熟悉的包含文件(导入)的形式 - 而PHP提供了两种熟悉的原生形式: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的所有功能以及更多功能。