我正在開發一個新的大型PHP/Symfony 2項目,並決定使用Sass/SCSS和Compass,我發現它們都非常適合以現代方式管理CSS。但是,仍然有一個問題我找不到任何答案:如何將PHP變量放在原始SCSS文件中,並將它們保存在輸出CSS文件中?如何讓PHP變量保留在SASS/SCSS生成的CSS樣式表中?
這不是一個細節,因爲如果沒有這個功能,就沒有辦法將Sass生成的樣式表與PHP進行對接,這在一些大型項目中可能會非常有限。
要清楚,並以此爲出發點,以經典的方式,我們可以用PHP接口CSS主要是這樣的:
<link type="text/css" href="layout.css.php?my_var=#CC0000" rel="stylesheet" />
,然後在僞CSS文件layout.css.php像在上面的例子:
<?php header("Content-type: text/css");?>
.my_color {
background-color:<?=$_GET['my_var']?>;
}
現在,我怎麼可以做一些等值的SCSS /指南針?換句話說,如何在最初的CSS輸出文件中保留原始SCSS文件中的一些PHP變量,以便像上面的例子那樣,可以使用PHP實時進一步分析它?
當我嘗試這樣做時,由於PHP語法,Compass和SASS編譯器失敗。
Phamlp有一些針對PHP的過濾器,它只適用於haml模板,而不適用於SCSS文件。
LESSphp似乎有such functionality,但很多人似乎正在從LESS轉到SCSS/Compass,那麼最好的方法是什麼?
非常感謝。
你說得對,我只是用這個基本的例子來大幅度簡化目的,我的真實環境要複雜得多(通過adapt.js驅動960.gs流體和響應式佈局,即:主體列將使用grid_24樣式,當右列沒有PHP返回的記錄時,或grid_17,而如果右列有內容,所以這種「服務器範圍」條件在這種情況下不是緩存問題。有用的,可以解決我的問題(與另一個技術層落實:-) 非常感謝您的詳細解答 – user1186503 2012-02-03 11:47:14
考慮拆分靜態的東西與動態的東西這適用於CSS和JS,用戶屬性只需創建另一個js文件,其中包含一個對象user.properties ll變量。靜態文件將使用此對象,因此可以緩存。 – 2012-02-03 14:08:24