Динамічний CSS досить тривіальний, і навіть якщо його програми більш обмежені (бачачи, як динамічно генерований HTML зі статичним таблицею стилів вирішує найбільш повсякденні потреби, а сам CSS включає декілька механізмів для досягнення напівдинамічного), я ' Я бачив, що він використовувався багато разів, і я сам їх використовую, коли мені потрібно.
Часто "динамічна" частина робить трохи більше, ніж поєднання декількох таблиць стилів в одну (для зменшення кількості запитів HTTP) та їх мінімізація (для зменшення використання смуги пропускання), а прості речі, такі як підміна підмінних (наприклад, використання змінних для кольорів, які використовуються протягом таблиця стилів) може значно полегшити ваше життя. Однак, оскільки у CSS є досить простий синтаксис з кількома застереженнями, для цього зазвичай достатньо системи для обробки тексту тексту або мови сценаріїв, як PHP, і тому ви не бачите багатьох нестандартних систем обробки CSS.
Можливо, ви бачили їх у дикій природі, не впізнаючи їх. Сервери, що надсилають динамічні сценарії, зазвичай використовують переписування URL-адрес, щоб URL-адреса не відрізнялася від вмісту, який розміщується статично. Це необхідно, оскільки деякі веб-переглядачі (особливо IE) розраховують на розширення для правильного виявлення типу MIME за певних обставин, ігноруючи (або відкидаючи) будь-які заголовки типу вмісту, надіслані вами.
Щодо кешування: таблиці стилів втягуються із GET-запитами, і зробити їх кешованими абсолютно важливо для гідного користувацького досвіду. Ви не хочете дивитись поповнення сторінки, оскільки вона повторно завантажує таблицю стилів у кожному запиті. Натомість слід розмістити всі параметри, які змінюють результати обробки вашої таблиці стилів, у рядок запиту; інший рядок запиту дає іншу URL-адресу, що, в свою чергу, призводить до пропуску кешу, тому щоразу, коли параметри будуть змінені, таблиця стилів буде повторно завантажена, навіть якщо клієнт кешує все. Якщо вам дійсно потрібен CSS, який потенційно відрізняється для кожного запиту і залежить від побічних ефектів, подумайте про те, щоб ввести нединамічну частину в таблицю стилів, що обслуговується статично, і обслуговувати лише ті речі, які необхідні для динаміки.