Мобильная и десктопная верстка, как не грузить лишнее?

Я стараюсь делать на сайте одну ветку шаблонов, и для десктопов и для мобильных.
Пользуюсь конечно для этого Bootstrap'ом. Давно уже с ним работаю. Но постоянно прихожу к одному и тому же вопросу.

При постепенном обрастании страниц сайта функционалом, фишками, формами неизбежно происходит желание чтобы какие-то элементы выглядели на десктопе и на мобильном по разному, к примеру div с картой, или же рекламный блок.

Я не нашел ничего изящнее чем просто делать два дива, которым давать соответственно .hidden-xs или .hidden-md
Но при таком повороте пользователь прогружает оба дива.
Есть ли возможность разделять в одном темплейте две сущности?
  • Вопрос задан
  • 2154 просмотра
Решения вопроса 1
Если блоки достаточно мелкие можно грузить и оба.
Если же блоки крупные, и это не критично для SEO грузите их по ajax.

Для мобильных, чтобы уменьшить время загрузки, вместе со страницей можно загружать только элементы первого-второго экрана, а остальные по ajax следом подтягивать.
Этакий lazyload контента.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
Menlod
@Menlod
Front-end developer
Если не предполагается использование браузеров раннего палеолита, то можно так:

<picture alt="description of image">
  <source src="small.jpg">
  <source src="medium.jpg" media="(min-width: 400px)">
  <source src="large.jpg" media="(min-width: 800px)">
  <img src="small.jpg" alt="description of image">
</picture>
Ответ написан
Картинки успешно разделяются через backround image и media queries - лишние не грузятся.

А вот с тегом img посложнее - нужно специальное решение на php использовать вроде responsive images.
Или самому на js закодить - в зависимости от вьюпорта подгружать в img src ту или иную картинку
Ответ написан
@Rebroff
Frontend developer, MODX developer
Picturefill
Ответ написан
Комментировать
SerzN1
@SerzN1
Challenge me!
Пользуюсь конечно для этого Bootstrap'ом.

вот в этом весь подвох, пользоваться без понимания происходящего

https://developer.mozilla.org/en-US/docs/Web/CSS/M...
первая же строка дает пояснение как делать отдельный цсс (картинки, фоны и тп можно засунуть в этот цсс в дата-урл или просто грузить нужного размера) + srcset + модульная структура

в foundation есть спец функции foundation.zurb.com/docs/components/interchange.html, что в принципе не сложно самому написать как минимодуль
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы