Схема двухкалонкавага макета сайта ў CSS
Давайце зробім двухкалонкавы макет наступнага выгляду:
Для пачатку створым асноўную структуру старонкі:
<div id="wrapper">
<div id="header">
header
</div>
<div id="container">
<div id="content">
content
</div>
<div id="sidebar">
sidebar
</div>
</div>
<div id="footer">
footer
</div>
</div>
Цяпер назначым стылі вэраперу, выраўнаваўшы яго па цэнтры экрана:
#wrapper {
width: 1000px;
margin: 30px auto;
border: 1px solid black;
}
Зададзім цяпер стылі хэдару і футару:
#header {
height: 200px;
border: 1px solid black;
}
#footer {
height: 200px;
border: 1px solid black;
}
Як вы бачыце, мы задаем хэдару і футару вышыню. Мы робім гэта, як як у нашай схеме ў іх няма змесціва. Пры наяўнасці змесціва вышыню блокам задаваць не варта - яна будзе фарміравацца іх змесцівам.
Звярніце таксама ўвагу на тое, што мы не задаем ім шырыню. Справа ў тым, што хэдар і футар - блачныя элементы і іх шырыня будзе аўтаматычна роўная шырыні вэрапера.
Давайце цяпер зададзім ім padding, каб
тэкст не прыліпаў да межаў:
#header {
height: 200px;
padding: 20px;
border: 1px solid black;
}
#footer {
height: 200px;
padding: 20px;
border: 1px solid black;
}
Наяўнасць paddingа, аднак, дрэнна паўплывае
на памеры блокаў - яны стануць большымі, чым
паказана. Давайце зменім паводзіны ўсіх блокаў
так, каб padding і мяжы не пашыралі
нашы блокі:
* {
box-sizing: border-box;
}
Цяпер нам трэба паставіць кантэнт і сайдар у адзін шэраг. Зробім гэта з дапамогай флексаў:
#container {
display: flex;
}
Пакажам кантэнту і сайбару іх шырыню. Пры гэтым сума іх шырынь павінна быць роўная шырыні вэрапера:
#content {
width: 800px;
}
#sidebar {
width: 200px;
}
Хай мы хочам зрабіць водступ паміж сайбарам
і кантэнтам. У гэтым выпадку сайбару трэба
паставіць margin. Пры гэтым нам прыйдзецца
ад каго-адціснуць шырыню для гэтага margin.
Адціснем ад кантэнту, адпаведна памяншыўшы
яго шырыню:
#content {
width: 780px;
}
#sidebar {
width: 200px;
margin-right: 20px;
}
Давайце цяпер дадамо вышыню, так як нашы элементы не змяшчаюць змесціва. Дастаткова дадаць вышыню толькі аднаму элементу, бо другі флекс элемент падбудовіцца па вышыні (чаму?). Давайце зададзім вышыню кантэнту:
#content {
width: 780px;
height: 700px;
}
#sidebar {
width: 200px;
margin-right: 20px;
}
Давайце дадамо кантэнту і сайбару астатнія стылі:
#content {
width: 780px;
height: 700px;
padding: 20px;
border: 1px solid black;
}
#sidebar {
width: 200px;
margin-right: 20px;
padding: 20px;
border: 1px solid black;
}
Усё, наш макет гатовы. Сабяром увесь код разам:
<div id="wrapper">
<div id="header">
header
</div>
<div id="container">
<div id="sidebar">
sidebar
</div>
<div id="content">
content
</div>
</div>
<div id="footer">
footer
</div>
</div>
* {
box-sizing: border-box;
}
#wrapper {
width: 1000px;
margin: 30px auto;
border: 1px solid black;
}
#header {
height: 200px;
padding: 20px;
border: 1px solid black;
}
#container {
display: flex;
}
#content {
width: 780px;
height: 700px;
padding: 20px;
border: 1px solid black;
}
#sidebar {
width: 200px;
margin-right: 20px;
padding: 20px;
border: 1px solid black;
}
#footer {
height: 200px;
padding: 20px;
border: 1px solid black;
}