Witajcie!
Przeglądając wiele różnych CMS'ów czy skryptów zaintrygowało mnie jedno - kod HTML prawie w całości jest generowany dynamicznie, dlaczego zatem wciąż używa się statycznych plików .css? Zazwyczaj style są traktowane w taki sposób:
- statyczne arkusze w zewnętrznych plikach .css, które można edytować
- style dodawane są wewnątrz kodu HTML
Jednak nie spełnia to następujących założeń:
- style tylko i wyłącznie w zewnętrznym pliku .css
- możliwość zdefiniowania mediów - np. chcę oddzielny styl dla drukarki, a oddzielny dla projektora
- liczba plików .css nie przekracza jednego dla każdego z mediów
- przeglądarka wczytuje tylko te style, które są niezbędne na danej stronie
- użytkownik musi mieć łatwy dostęp do styli, dobrze by było jakby miał je ponazywane, poopisywane, skatalogowane i przypisane do poszczególnych elementów strony, klikam np. właściwości kategorii 1.3.5 i wyświetla się lista dołączonych styli wraz z nazwami i opisami, za co który odpowiada, klikam dalej i od razu mogę edytować dany styl zamiast szukać go po całym pliku (lub wielu plikach)
Jedyny sposób, aby spełnić powyższe to dynamicznie generować style css przy pomocy php i mysql, jednak tutaj mam pytania:
1. Czy takie założenia są złe lub niezgodne z teorią nowoczesnego projektowania aplikacji generujących strony www? Prośba do Was oczywiście o opinie wynikające z Waszego doświadczenia.
2. W jaki sposób dynamicznie tworzyć style?
a ) stosować kod php traktując pliki .css jak zwykłe pliki .php
b ) po prostu generować plik .css poprzez choćby file_put_contents
c ) nie ma znaczenia wybór metody, obie powyższe są równie dobre (dlatego lepiej wybrać b ze względu na to, że nie każdy hosting umożliwia nam parsowanie plików .css)
d ) inny sposób?
3. W jaki sposób zaimplementować cache?
a ) dla każdej strony tworzymy komplet statycznych plików .css
b ) pobieramy style z cache wybranej kategorii/podkategorii/strony i dopiero z nich tworzymy pliki .css
c ) nie ma znaczenia, obie metody są równie dobre
d ) inny sposób?
W metodzie a zmieniają się linki do plików css a nie same pliki, natomiast w metodzie b odwrotnie - linki są stałe, natomiast plik .css jest tworzony de novo za każdym żądaniem. Cache kategorii/podkategorii rozumiem jako plik tekstowy w postaci tablicy zserializowanej. Metoda a wydaje się wydajniejsza, jednak jest bardziej skomplikowana w implementacji, jeśli nie ma większej różnicy w wydajności wolałbym b.
Z góry dzięki za wszystkie konstruktywne odpowiedzi.