Benim CSS Geliştirmek için PHP Kullanımı

6 Cevap php

Benim CSS kullanmak şeklinde bazı değişiklikler yapmak istiyorum. Ben renkleri falan tanımlamak için değişkenleri kullanmak mümkün olmak istiyorum. Yani aşağıdakileri yapabilirsiniz

var red = '#FF0000';

Ve tabii kırmızı '# FF0000' uygun hallerde konacak.

Bunu nasıl yapabilirim? Ben tür ben sadece normal ifadeler hatta bunu yapmak için en iyi yolu ise bilmiyorum nasıl, biliyorum.

6 Cevap

Bunu yapabilirsin. Basitçe. Css içine php yazmak bir HTML dosyası olur sayede dosyaları, ve daha sonra php ile bu dosyayı ayrıştırmak için (muhtemelen apache) web serverını söyle.

. Eğer css dizinde bir htaccess dosyasına bu ekleyebilirsiniz:

AddHandler php5-script .css

Ancak, bu sizin css dosyalarının yüklenmesini yavaşlatabilir, ve bir hız farkı çok yapmaktan son kullanıcı önbelleğe almayı önleyecek şekilde kötü bir tekniktir. Bu olsa, performans umurumda değil web siteleri için uygun bir kısayol olabilir.

Bu işlemek için en iyi yolu bazı şablon dosyaları oluşturmak, ve sonra bir php script süreç onları ve çıkış düz CSS dosyaları sahip olmaktır. Bunu yaparken biraz daha fazla performans sıkmak için, internet üzerinde etrafında kazmak ve bazı güzel CSS minimizer bulabilirsiniz. Akılda tutulması gereken şeylerin bir çift:

1) Güvenlik - oluşturucu komut web üzerinden çalıştırmak olacaktır, eğer web kök dışında şablon dosyaları tutmak için muhtemelen akıllı bir fikir. Benim olsaydı, ben oluşturucu ve web kök dışında şablonları hem tutmak ve komut satırından oluşturucu komut dosyasını çalıştırmak istiyorum.

CSS bu gerçekten değerli olduğunu yeterince karmaşık ise 2), düşünüyorum "şeyler için adları" uzun ve zor. $ Kırmızı özellikle iyi bir isim değil. Şimdi değişken olduğundan, bazı nokta $ kırmızı aslında (# 00F gibi) mavi olabilir! Ben bir biçembentin değerleri temsil eden değişkenler için tanımlayıcı isimleri ile geliyor, bu yaptık her zaman gerçek bir bulmaca olmuştur.

EDIT: Ben bu cevap beri süre içinde, oldukça dezavantaj, bu sorunu çözer, compass bulundu ve daha ettik. Kendi dinamik CSS sistemini yaygınlaştırmaya çalışıyor önce kesinlikle bir göz değer.

Gibi bir şey yapabilirsiniz:

style.css.php

<?php
    header('Content-type: text/css');

    $red = '#F00';
?>

body {
    background: <?=$red?>
}

Bu para cezası çalışması gerekir.

Bu aynı sorun ile karşı karşıya, ben harici css dosyası içine kadar olmayan değişen css yerleştirilir ve HTML / PHP dosyası kafası içine değişti css yankılandı. Bu dosyaları harici css bütün olması arzusunu kırar, ancak standart dışı Apache yapılandırmaları oluşturma maliyetli dış css dosyaları için dogmatik ihtiyaç değmez.

Paul McMillan (kod kullanmak ne hosting şirketi bağlı olarak farklı olabilir). Htaccess dosyasına bu eklemek bahsedilen ilk gibi

AddHandler php5-script .css

İkinci make (örneğin, dinamik başlık arka planı değiştirmek için) gibi whatever.css dosya bakmak şey

<?php header('Content-type: text/css'); ?>
#header {
  background-image: url("http://myurl.com/images/<?php switch (rand(0,4)) {
case 0:
    echo 'green';
    break;
case 1:
    echo 'red';
    break;
case 2:
    echo 'blue';
    break;
case 3 :
    echo 'purple';
    break;
case 4:
    echo 'orange';
    break;
}
?>.png");
}

Perhaps the best way of doing what you are looking for is by using a CSS Framework. Take a look at CSScaffold

Çok kolay sabitler tanımlayabilirsiniz:

@constants {
  red: #f00;
}

En iyi parçalarından biri sen istersen seçici içine css stilleri dahil etmek Katmalar kullanabilirsiniz olduğunu.