Концептуально, я думаю, вы очень на правильном пути. Намного проще представить модель страницы в терминах некоторых очень простых контейнеров (заголовок, нижний колонтитул, контент). Вы можете сделать шаг вперед, определив блоки логики отображения (верхняя панель навигации, ссылки нижнего колонтитула, левая панель объявлений и т. Д.), Которые можно использовать для заполнения больших контейнеров.
Прагматично, как бы вы это сделали? Во-первых, это зависит от того, какую платформу и язык вы используете. Решения для .NET, Java, PHP или плоского HTML могут быть реализованы по-разному в зависимости от того, где вы решите рисовать линии. В плоском HTML одним из способов является использование файлов #include. В языках программирования вы должны решить, какой будет ваша внешняя структура контейнера и как вы будете определять строительные блоки (которые по умолчанию определяют, как вы их агрегируете). Есть много возможных способов сделать это.
И собираетесь ли вы быть человеком, создающим и управляющим сайтом, или передадите эту ответственность группе владельцев нетехнического контента в вашей организации? Этот ответ может сильно повлиять на ваш выбор дизайна.
Во многих системах управления контентом идея состоит в том, чтобы четко отделить контент от презентации. Таким образом, в базе данных есть общая парадигма хранения контента, а затем существует динамический способ представления этого контента через некоторый механизм отображения, написанный на облегченной платформе.