boostrap решает все эти вопросы, но загромождает код, и тут вопрос сколько таких скрытых блоков, если это 1 - 2 блока - то в чем проблема?
Можно еще сделать динамическую подргузку части блоков, после загрузки страницы в js получать размеры дисплея и слеать ajax, который вернет блок именно для этого размера, пока идет ajax можно какой-то лоадер вставить вместо блока
Ну и если шаблоны совершенно разные, то можно на сервере определять устройство и под разные устройства генерить разные шаблоны. Нет гарантии, что устройство верно определиться, но иногда это единственный вариант.
Еще вариант - делать прелоадер и пока он там красуется, делать ajax и получать нужный контент. Различия версий можно разрулить через поддомены.
В любом случае, надо смотреть на весь проект. Ибо решений много, но только одно из них оптимально для Вашего случая.