Я обычно работаю над большим количеством бэк-энда, поэтому никогда раньше не задумывался об этом, но вчера я работал над сайтом для друга, и после некоторого разочарования мне пришло в голову, что нет причин, по которым HTML-файлы - единственные это может быть динамически сгенерировано на стороне сервера.
Я вижу людей, говорящих о решениях javascript, чтобы обойти ограничения CSS, но почему CSS не может быть динамически «жестко закодирован»?
Я знаю, что я не первый, кто придумал это, потому что, подумав об этом, я посмотрел его, и было несколько примеров, но не тонн, и я никогда не видел, чтобы это упоминалось здесь и в StackOverflow.
Есть ли недостатки в этом, по сравнению, скажем, изменение размера элементов с помощью javascript перед загрузкой страницы? Любые другие потенциальные ошибки, о которых я должен знать?
Я делаю это в Django, но вопрос в значительной степени не зависит от фреймворка / языка.
Просматривая вопросы в теге dynamic-css, я нашел {less} для Ruby, который выглядит довольно круто, но в целом не так много разговоров о файлах css, генерируемых на стороне сервера.
EDIT:
Я думаю, что некоторые люди могут быть озадачены тем, что я имею в виду под динамическим CSS. Я не имею в виду, что это меняется в зависимости от пользовательского контента или чего-то еще. Вот пример, который я нашел, чтобы отцентрировать изображение:
img {
position: absolute;
top: 50%;
left: 50%;
width: 500px;
height: 500px;
margin-top: -250px; /* Half the height */
margin-left: -250px; /* Half the width */
}
Это все замечательно, но это означает знание размера вашего изображения в css. Кроме того, это означает другую запись для изображений разных размеров. Если высота и ширина были переменными, а размер изображения определялся на стороне сервера, он становится более универсальным и может использоваться повторно.
Я уверен, что есть другие примеры того, где это было бы полезно, но не слишком много работало с css, это первое, с чем у меня возникли проблемы, которое хорошо работало с динамическим css.
Кроме того, если производительность стала проблемой, я уверен, что она может быть правильно кэширована с небольшим количеством работы.