Dynamiczny CSS jest dość trywialny i chociaż jego aplikacje są bardziej ograniczone (biorąc pod uwagę, jak dynamicznie generowany HTML ze statycznym arkuszem stylów zaspokaja większość codziennych potrzeb, a sam CSS zawiera kilka mechanizmów pozwalających osiągnąć pół-dynamiczny), „ widziałem, że był używany wiele razy i używam ich osobiście, kiedy tylko muszę.
Często część „dynamiczna” robi niewiele więcej niż łączenie kilku arkuszy stylów w jeden (w celu zmniejszenia liczby żądań HTTP) i ich minimalizowanie (w celu zmniejszenia wykorzystania przepustowości), ale proste rzeczy, takie jak zastępowanie zmiennych (np. Używanie zmiennych dla kolorów używanych w całym tekście arkusz stylów) może znacznie ułatwić Ci życie. Ponieważ jednak CSS ma dość prostą składnię z kilkoma zastrzeżeniami, zwykle wystarcza do tego ogólny system przetwarzania tekstu lub język skryptowy, taki jak PHP, dlatego nie widzisz wielu gotowych systemów przetwarzania CSS.
Może widziałeś ich na wolności, nie rozpoznając ich. Serwery wysyłające skrypty dynamiczne zwykle używają przepisywania adresów URL, dzięki czemu adres URL staje się nie do odróżnienia od treści udostępnianych statycznie. Jest to konieczne, ponieważ niektóre przeglądarki (w szczególności IE) polegają na rozszerzeniach do prawidłowego wykrywania typu MIME w określonych okolicznościach, ignorując (lub odrzucając) wszelkie nagłówki typu treści, które mogłeś wysłać.
Odnośnie buforowania: Arkusze stylów są pobierane z żądaniami GET, a ich buforowanie jest absolutnie ważne dla przyzwoitego doświadczenia użytkownika. Nie chcesz oglądać ponownego wczytywania strony, ponieważ ponownie pobiera arkusz stylów na każde żądanie. Zamiast tego należy umieścić wszystkie parametry zmieniające dane wyjściowe przetwarzania arkusza stylów w ciągu zapytania; inny ciąg zapytania daje inny adres URL, co z kolei powoduje brak pamięci podręcznej, więc po zmianie parametrów arkusz stylów zostanie ponownie pobrany, nawet jeśli klient buforuje wszystko. Jeśli naprawdę potrzebujesz CSS, który jest potencjalnie inny dla każdego żądania i zależy od skutków ubocznych, rozważ umieszczenie części niedynamicznej w arkuszu stylów obsługiwanym statycznie i obsługuj tylko te rzeczy dynamicznie, które są absolutnie wymagane, aby być dynamicznym.