Старый подход — float и clearfix
До Grid трёхколоночный макет собирали на float: left с фиксированными процентами ширины,
а подвал спасали от «наезда» через clear: both. Колонки не выравнивались по высоте,
порядок в HTML был жёстко привязан к визуальному, а любое изменение ширин ломало раскладку.
📄 lesson-30/old.css
.nav { float: left; width: 20%; }
.main { float: left; width: 60%; }
.aside { float: left; width: 20%; }
.footer { clear: both; } /* иначе подвал «наедет» на колонки */
footer (нужен clear:both)
/* колонки разной высоты не выровнены,
gap руками через padding/margin */
Новый подход — Grid с областями
Grid описывает всю двумерную структуру в одном месте: строки, колонки, области и промежутки.
Колонки автоматически равной высоты, gap вместо ручных отступов, никакого clear.
📄 lesson-30/new.css
.holy-grail {
display: grid;
grid-template-areas:
"header header header"
"nav main aside"
"footer footer footer";
grid-template-columns: 14rem 1fr 16rem;
gap: 1rem;
}
.nav { grid-area: nav; } .main { grid-area: main; } .aside { grid-area: aside; }
header
nav
main
aside
footer
/* колонки равной высоты, gap встроен,
clear:both не нужен */