Jump to content
  • 0

Теория и практика подключения стилей


Diasouls
 Share

Question

Всем доброго времени суток!

Давайте сегодня поговорим о том, как подключать стили на проектах, где все файлы .css занимают больше 300-400кб.

Вопрос появился после разговора с коллегами по профессии в паблике Хабрахабра в вк.

Собственно сам вопрос: Как лучше подключать стили, если они имеют довольно большой объем?

Речь пойдет про bootstrap + свой css.

Словарь: bootstrap -> bs3

Да-да, матерый верстальщик скажет, что фу такую бяку юзать, лучше самому все написать. Но мы не ищем легких путей и думаю эта тема интересна всем тем, кто связан с этим по жизни. Однако, даже если убрать bootstrap, то все равно в любом проекте есть основные стили, а вокруг них танцуют другие :)

Здесь собраны некоторые идеи комментаторов и мои соображения, а также что я думаю по той или иной идее:

Идея #1. Модульная система.

Разобрать bs3 и свой.css на модули и подключать их по необходимости.

Плюсы:

На страницах подключаются только необходимые "модули" -> меньше размер.

После открытия всех типов страниц будет кэшированая полная версия стилей.

Минусы:

Одинокие .css файлы -> больше запросов к серверу, а это критично на мобильных устройствах.

Небольшое замедление скорости разработки, из-за нарезки модулей.

Идея #2. Основа и комплексные стили страниц.

Разобрать все файлы стилей на модули. Определить все стили, которые используются на всех страницах сайта и собрать их в основной .css файл и подключать его, а дальше использовать комплекс стилей конкретной страницы, когда подключается второй файл со всеми стилями необходимыми для этой страницы.

Плюсы:

Меньший размер подключенных .css.

Минусы:

Скорость разработки медленная, из-за сборки стилей.

Кэш будет раздут и для каждой страницы на 50% новый.

Идея #3: Идея #1 и #2 в профиль.

Тоже самое что и вторая идея, но использовать основу и вместо второго файла использовать модули стилей из первой идеи.

Плюсы:

Меньший размер подключенных .css.

Больший шанс, что кроме основы, будет закэширован и какой-то из модулей.

Минусы:

Небольшое замедление скорости разработки, из-за выделения основы и модулей.

Одинокие .css файлы -> больше запросов к серверу, а это критично на мобильных устройствах.

Идея #4. Безумие по диагонали.

А давайте сделаем основной .css файл, а для конкретной страницы будем в <head></head> писать <style>стили</style>.

Плюсы:

Один запрос к серверу.

Хорошо сжимается gzip.

Минусы:

Скорость разработки малость пострадает, так как нужно выделить основу и инклудить стили в <head></head>

Эстетика нарушена.

Кэширование применимо только к основе.

Идея #5. Хардкор.

Оставить все эти теории и практики и подключить как всегда, одним файлом.

Плюсы:

Скорость разработки как всегда.

Поддержка как всегда.

Один запрос на все стили.

100% кэш.

Минусы:

Огромный размер файла стилей, что может привести к очень значительному времени загрузки страницы и его внешнему виду.

Прошу не ругать за такой вопрос, если его где-то обсуждали. Честно - я не нашел.

Жду ваших ответов и готов обсудить любой из вариантов. Любопытно все это мне :)

Edited by Diasouls
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy