Կայքի երկու սյունակով դասավորության սխեման 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-ին՝ կենտրոնում դնելով այն էկրանի.
#wrapper {
width: 1000px;
margin: 30px auto;
border: 1px solid black;
}
Այժմ սահմանենք header-ի և footer-ի ոճերը.
#header {
height: 200px;
border: 1px solid black;
}
#footer {
height: 200px;
border: 1px solid black;
}
Ինչպես տեսնում եք, մենք սահմանում ենք header-ին և footer-ին բարձրություն: Մենք դա անում ենք, քանի որ մեր սխեմայում դրանք չունեն բովանդակություն: Բովանդակություն ունենալու դեպքում բլոկներին բարձրություն սահմանել չարժե - այն կձևավորվի դրանց բովանդակությամբ:
Ուշադրություն դարձրեք նաև, որ մենք չենք սահմանում դրանց լայնություն: Բանն այն է, որ header-ը և footer-ը բլոկային տարրեր են, և դրանց լայնությունը կլինի ավտոմատ կերպով հավասար wrapper-ի լայնությանը:
Եկեք այժմ սահմանենք դրանց 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;
}
Այժմ մեզ անհրաժեշտ է content-ը և sidebar-ը դնել մեկ շարքում: Եկեք դա անենք flex-ի միջոցով.
#container {
display: flex;
}
Նշենք content-ին և sidebar-ին դրանց լայնությունը: Միաժամանակ դրանց լայնությունների գումարը պետք է հավասար լինի wrapper-ի լայնությանը.
#content {
width: 800px;
}
#sidebar {
width: 200px;
}
Ենթադրենք՝ մենք ուզում ենք բաց տեղ ստեղծել sidebar-ի
և content-ի միջև: Այս դեպքում sidebar-ին պետք է
սահմանել margin: Միաժամանակ մեզ ստիպված կլինի
ինչ-որ մեկից «կտրել» լայնություն այս margin-ի համար:
Կտրենք content-ից՝ համապատասխանաբար նվազեցնելով
նրա լայնությունը.
#content {
width: 780px;
}
#sidebar {
width: 200px;
margin-right: 20px;
}
Եկեք այժմ ավելացնենք բարձրություն, քանի որ մեր տարրերը չեն պարունակում բովանդակություն: Բավական է ավելացնել բարձրություն միայն մեկ տարրին, քանի որ երկրորդ flex տարրը կհարմարվի բարձրությանը (ինչու՞): Եկեք սահմանենք բարձրությունը content-ին.
#content {
width: 780px;
height: 700px;
}
#sidebar {
width: 200px;
margin-right: 20px;
}
Եկեք ավելացնենք content-ին և sidebar-ին մնացած ոճերը.
#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;
}