Realizing common layouts using CSS Grid Layout
ЧÑÐ¾Ð±Ñ Ð·Ð°Ð²ÐµÑÑиÑÑ Ð½Ð°Ð±Ð¾Ñ ÑÑководÑÑв по CSS Grid Layout, Ñ ÑобиÑаÑÑÑ Ð¿ÑойÑиÑÑ Ð¿Ð¾ оÑновнÑм видам макеÑов, коÑоÑÑе демонÑÑÑиÑÑÑÑ Ð½ÐµÑколÑко ÑазлиÑнÑÑ Ð¼ÐµÑодов, коÑоÑÑе можно иÑполÑзоваÑÑ Ð¿Ñи пÑоекÑиÑовании Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ grid layout. ÐÑ ÑаÑÑмоÑÑим пÑÐ¸Ð¼ÐµÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑей ÑеÑки-Ñаблона, ÑипиÑнÑÑ Ð³Ð¸Ð±ÐºÑÑ ÑеÑоÑнÑÑ ÑиÑÑÐµÐ¼Ñ Ñ 12 ÑÑолбÑами, а Ñакже ÑпиÑок пÑодÑкÑов Ñ Ð¸ÑполÑзованием авÑомаÑиÑеÑкого ÑазмеÑениÑ. Ðак Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе видеÑÑ Ð¸Ð· ÑÑого ÑпиÑка пÑимеÑов, ÑÑÑеÑÑвÑÐµÑ Ð½ÐµÑколÑко ÑпоÑобов доÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ Ð¶ÐµÐ»Ð°ÐµÐ¼Ð¾Ð³Ð¾ ÑезÑлÑÑаÑа Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²ÐºÐ¸ ÑеÑки. ÐÑбеÑиÑе меÑод, коÑоÑÑй Ð²Ñ ÑÑиÑаеÑе наиболее полезнÑм Ð´Ð»Ñ ÑеÑÐµÐ½Ð¸Ñ Ð¿Ñоблем, коÑоÑÑе Ð²Ñ ÑеÑаеÑе, и пÑоекÑов, коÑоÑÑе вам нÑжно ÑеализоваÑÑ.
ÐдапÑивнÑй 1-3 колоноÑнÑй Ð¼Ð°ÐºÐµÑ Ñ Ð¸ÑполÑзованием grid-template-areas
Ðногие веб-ÑайÑÑ ÑвлÑÑÑÑÑ ÑазновидноÑÑÑÑ Ñакого Ñипа макеÑа, Ñ Ð¾ÑновнÑм ÑодеÑжанием, боковÑми панелÑми, Ñ ÐµÐ´ÐµÑом и ÑÑÑеÑом. РадапÑивном дизайне Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе оÑобÑазиÑÑ Ð¼Ð°ÐºÐµÑ Ð² виде одного ÑÑолбÑа, добавив боковÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ Ð² опÑеделÑнном меÑÑе, а заÑем ввеÑÑи Ð¼Ð°ÐºÐµÑ Ð¸Ð· ÑÑÑÑ ÑÑолбÑов Ð´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ ÑиÑÐ¾ÐºÐ¸Ñ ÑкÑанов.

Я ÑобиÑаÑÑÑ ÑоздаÑÑ ÑÑÐ¾Ñ Ð¼Ð°ÐºÐµÑ, иÑполÑзÑÑ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ñе облаÑÑи Ñаблонов, о коÑоÑÑÑ Ð¼Ñ Ñзнали в ÑÑководÑÑве Grid template areas.
ÐÐ¾Ñ ÑазмеÑка-ÑÑо конÑÐµÐ¹Ð½ÐµÑ Ñ ÑлеменÑами внÑÑÑи Ð´Ð»Ñ Ñ ÐµÐ´ÐµÑа и ÑÑÑеÑа, оÑновного конÑенÑа, навигаÑии, боковой панели и блока, в коÑоÑÑй Ñ ÑобиÑаÑÑÑ Ð¿Ð¾Ð¼ÐµÑÑиÑÑ ÑекламÑ.
<div class="wrapper">
<header class="main-head">The header</header>
<nav class="main-nav">
<ul>
<li><a href="">Nav 1</a></li>
<li><a href="">Nav 2</a></li>
<li><a href="">Nav 3</a></li>
</ul>
</nav>
<article class="content">
<h1>Main article area</h1>
<p>
In this layout, we display the areas in source order for any screen less
that 500 pixels wide. We go to a two column layout, and then to a three
column layout by redefining the grid, and the placement of items on the
grid.
</p>
</article>
<aside class="side">Sidebar</aside>
<div class="ad">Advertising</div>
<footer class="main-footer">The footer</footer>
</div>
ÐоÑколÑÐºÑ Ð¼Ñ Ð¸ÑполÑзÑем grid-template-areas Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¼Ð°ÐºÐµÑа, вне какиÑ
-либо медиавÑÑажений, мне нÑжно назваÑÑ Ð¾Ð±Ð»Ð°ÑÑи. ÐÑ Ð½Ð°Ð·Ñваем облаÑÑи, иÑполÑзÑÑ ÑвойÑÑво grid-area.
.main-head {
grid-area: header;
}
.content {
grid-area: content;
}
.main-nav {
grid-area: nav;
}
.side {
grid-area: sidebar;
}
.ad {
grid-area: ad;
}
.main-footer {
grid-area: footer;
}
ÐÑо не ÑоздаÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð³Ð¾ макеÑа, однако наÑи ÑлеменÑÑ ÑепеÑÑ Ð¸Ð¼ÐµÑÑ Ð¸Ð¼ÐµÐ½Ð°, коÑоÑÑе Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ иÑполÑзоваÑÑ Ð´Ð»Ñ ÑозданиÑ. ÐÑÑаваÑÑÑ Ð²Ð½Ðµ ÐºÐ°ÐºÐ¸Ñ -либо медиавÑÑажений, Ñ ÑепеÑÑ ÑобиÑаÑÑÑ Ð½Ð°ÑÑÑоиÑÑ Ð¼Ð°ÐºÐµÑ Ð´Ð»Ñ Ð¼Ð¾Ð±Ð¸Ð»Ñной плаÑÑоÑмÑ. ÐдеÑÑ Ñ Ð´ÐµÑÐ¶Ñ Ð²Ñе в иÑÑ Ð¾Ð´Ð½Ð¾Ð¼ поÑÑдке, пÑÑаÑÑÑ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ Ð»Ñбого ÑазÑÑва Ð¼ÐµÐ¶Ð´Ñ Ð¸ÑÑоÑником и диÑплеем, как опиÑано в ÑÑководÑÑве Grid layout and accessibility. У Ð¼ÐµÐ½Ñ Ð½ÐµÑ ÑÑолбÑов или ÑÑÑок, Ñ. к. Ñакой Ð¼Ð°ÐºÐµÑ Ð¿ÑÐµÐ´Ð¿Ð¾Ð»Ð°Ð³Ð°ÐµÑ Ð¾Ð´Ð¸Ð½ ÑÑолбеÑ, и ÑÑÑоки бÑдÑÑ ÑоздаваÑÑÑÑ Ð¿Ð¾ меÑе Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из ÑлеменÑов неÑвной ÑеÑки.
.wrapper {
display: grid;
grid-gap: 20px;
grid-template-areas:
"header"
"nav"
"content"
"sidebar"
"ad"
"footer";
}
ÐоÑле наÑÑÑойки мобилÑного макеÑа Ð¼Ñ Ð¿Ð¾Ð»ÑÑим единÑÑвеннÑй ÑÑÐ¾Ð»Ð±ÐµÑ Ð¿Ñи вÑÐµÑ ÑазмеÑÐ°Ñ ÑкÑана, ÑепеÑÑ Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ добавиÑÑ Ð¼ÐµÐ´Ð¸Ð°Ð²ÑÑажение и пеÑеопÑеделиÑÑ Ð½Ð°Ñ Ð¼Ð°ÐºÐµÑ Ð´Ð»Ñ Ñого обÑÑоÑÑелÑÑÑва, ÑÑо Ñ Ð½Ð°Ñ Ð´Ð¾ÑÑаÑоÑно ÑкÑанного меÑÑа, ÑÑÐ¾Ð±Ñ ÑазмеÑÑиÑÑ Ð´Ð²Ð° ÑÑолбÑа.
@media (min-width: 500px) {
.wrapper {
grid-template-columns: 1fr 3fr;
grid-template-areas:
"header header"
"nav nav"
"sidebar content"
"ad footer";
}
nav ul {
display: flex;
justify-content: space-between;
}
}
ÐÑ Ð¼Ð¾Ð¶ÐµÑе видеÑÑ, как Ð¼Ð°ÐºÐµÑ Ð¿ÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑоÑÐ¼Ñ Ð² знаÑении grid-template-areas. Ðаголовок оÑ
ваÑÑÐ²Ð°ÐµÑ Ð´Ð²Ðµ доÑожки ÑÑолбÑов, как и навигаÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑиÑÑема. Ð ÑÑеке ÑÑеÑÑего ÑÑда Ñ Ð½Ð°Ñ ÐµÑÑÑ Ð±Ð¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»Ñ ÑÑдом Ñ ÑодеÑжимÑм. Ð ÑеÑвÑÑÑой ÑÑÑоке Ñ ÑеÑил ÑазмеÑÑиÑÑ Ñвой ÑекламнÑй конÑÐµÐ½Ñ â Ñак он поÑвлÑеÑÑÑ Ð¿Ð¾Ð´ боковой панелÑÑ, а заÑем ÑÑÑеÑ, ÑÑдом Ñ Ð½Ð¸Ð¼ под конÑенÑом. Я иÑполÑзÑÑ flexbox в навигаÑии, ÑÑÐ¾Ð±Ñ Ð¾ÑобÑазиÑÑ ÐµÐ³Ð¾ в ÑазнеÑÑнном ÑÑдÑ.
ТепеÑÑ Ñ Ð¼Ð¾Ð³Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ ÐºÐ¾Ð½ÐµÑнÑе ÑоÑки в Ð½Ð°Ñ 3-Ñ ÐºÐ¾Ð»Ð¾Ð½Ð¾ÑнÑй макеÑ.
@media (min-width: 700px) {
.wrapper {
grid-template-columns: 1fr 4fr 1fr;
grid-template-areas:
"header header header"
"nav content sidebar"
"nav content ad"
"footer footer footer";
}
nav ul {
flex-direction: column;
}
}
ТÑÑÑ
колоноÑнÑй Ð¼Ð°ÐºÐµÑ Ð¸Ð¼ÐµÐµÑ Ð´Ð²Ðµ боковÑе колонки ÑазмеÑом 1fr и ÑÑеднÑÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÑ, ÑазмеÑом 4fr . ÐÑо ознаÑаеÑ, ÑÑо доÑÑÑпное пÑоÑÑÑанÑÑво в конÑейнеÑе Ñазделено на 6 ÑÑеек и ÑаÑпÑеделено пÑопоÑÑионалÑно наÑÐµÐ¼Ñ Ð¼Ð°ÐºÐµÑÑ â по одной ÑаÑÑи к боковÑм колонкам и по 4 ÑаÑÑи к ÑенÑÑÑ.
Ð ÑÑом макеÑе Ñ Ð¿Ð¾ÐºÐ°Ð·ÑÐ²Ð°Ñ Ð½Ð°Ð²Ð¸Ð³Ð°ÑÐ¸Ñ Ð² левой колонке, ÑÑдом Ñ ÑодеÑжимÑм. РпÑавой колонке Ñ Ð½Ð°Ñ ÐµÑÑÑ Ð±Ð¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»Ñ, а под ней блок ÑÐµÐºÐ»Ð°Ð¼Ñ (ad). ФÑÑÐµÑ ÑепеÑÑ Ð¾Ñ Ð²Ð°ÑÑÐ²Ð°ÐµÑ Ð²ÑÑ Ð½Ð¸Ð¶Ð½ÑÑ ÑаÑÑÑ Ð¼Ð°ÐºÐµÑа. ÐаÑем Ñ Ð¸ÑполÑзÑÑ flexbox Ð´Ð»Ñ Ð¾ÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ð°Ð²Ð¸Ð³Ð°Ñии в виде ÑÑолбÑа.
ÐÑо пÑоÑÑой пÑимеÑ, но он демонÑÑÑиÑÑеÑ, как Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ иÑполÑзоваÑÑ grid layout Ð´Ð»Ñ Ð¿ÐµÑеÑÑÑойки наÑего макеÑа. Ð ÑаÑÑноÑÑи, Ñ Ð¸Ð·Ð¼ÐµÐ½ÑÑ ÑаÑположение Ñекламного блока, как заложено в наÑÑÑÐ¾Ð¹ÐºÐ°Ñ ÑÑолбÑов. ÐÑÐ¾Ñ Ð¼ÐµÑод оÑÐµÐ½Ñ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ на ÑÑапе пÑоÑоÑипиÑованиÑ, он легко позволÑÐµÑ ÑкÑпеÑименÑиÑоваÑÑ Ñ ÑаÑположением ÑлеменÑов. ÐÑ Ð²Ñегда можеÑе иÑполÑзоваÑÑ ÑеÑÐºÑ Ñаким обÑазом Ð´Ð»Ñ Ð¿ÑоÑоÑипиÑованиÑ, даже неÑмоÑÑÑ Ð½Ð° оÑобенноÑÑи оÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² ÑазлиÑнÑÑ Ð±ÑаÑзеÑÐ°Ñ , коÑоÑÑе показÑваÑÑ Ð²Ð°Ñ ÑайÑ.
Ðибкий 12-колоноÑнÑй макеÑ
ÐÑли Ð²Ñ ÑабоÑали Ñ ÑÑеймвоÑками или grid ÑиÑÑемами, вам знакомо ÑазмеÑение ÑайÑа на гибкой ÑеÑке Ñ 12 или 16 ÑÑолбÑами. ÐÑ Ð¼Ð¾Ð¶ÐµÐ¼ ÑоздаÑÑ Ñакой макеÑ, иÑполÑзÑÑ CSS Grid Layout. РкаÑеÑÑве пÑоÑÑого пÑимеÑа Ñ ÑÐ¾Ð·Ð´Ð°Ñ Ð³Ð¸Ð±ÐºÑÑ ÑеÑÐºÑ Ð¸Ð· 12 ÑÑолбÑов, коÑоÑÐ°Ñ Ð¸Ð¼ÐµÐµÑ 12 линий ÑÑолбÑов ÑазмеÑом 12 1fr-вÑе они имеÑÑ Ð½Ð°ÑалÑнÑÑ Ð»Ð¸Ð½Ð¸Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ col-start. ÐÑо ознаÑаеÑ, ÑÑо Ñ Ð½Ð°Ñ Ð±ÑÐ´ÐµÑ Ð´Ð²ÐµÐ½Ð°Ð´ÑаÑÑ Ð»Ð¸Ð½Ð¸Ð¹ ÑеÑки Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ col-start.
.wrapper {
display: grid;
grid-template-columns: repeat(12, [col-start] 1fr);
grid-gap: 20px;
}
ЧÑÐ¾Ð±Ñ Ð¿ÑодемонÑÑÑиÑоваÑÑ, как ÑабоÑÐ°ÐµÑ ÑÑа ÑеÑоÑÐ½Ð°Ñ ÑиÑÑема, Ñ Ð¼ÐµÐ½Ñ Ð²Ð½ÑÑÑи оболоÑки еÑÑÑ ÑеÑÑÑе доÑеÑÐ½Ð¸Ñ ÑлеменÑа.
<div class="wrapper">
<div class="item1">Start column line 1, span 3 column tracks.</div>
<div class="item2">
Start column line 6, span 4 column tracks. 2 row tracks.
</div>
<div class="item3">Start row 2 column line 2, span 2 column tracks.</div>
<div class="item4">
Start at column line 3, span to the end of the grid (-1).
</div>
</div>
ÐаÑем Ñ Ð¼Ð¾Ð³Ñ Ð¿Ð¾Ð¼ÐµÑÑиÑÑ Ð¸Ñ Ð² ÑеÑкÑ, иÑполÑзÑÑ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ñе линии, а Ñакже клÑÑевое Ñлово span.
.item1 {
grid-column: col-start / span 3;
}
.item2 {
grid-column: col-start 6 / span 4;
grid-row: 1 / 3;
}
.item3 {
grid-column: col-start 2 / span 2;
grid-row: 2;
}
.item4 {
grid-column: col-start 3 / -1;
grid-row: 3;
}
Ðак опиÑано в ÑÑководÑÑве по именованнÑм ÑÑÑокам, Ð¼Ñ Ð¸ÑполÑзÑем именованнÑÑ ÑÑÑÐ¾ÐºÑ Ð´Ð»Ñ ÑазмеÑÐµÐ½Ð¸Ñ Ð½Ð°Ñего ÑлеменÑа. ÐоÑколÑÐºÑ Ñ Ð½Ð°Ñ ÐµÑÑÑ 12 ÑÑÑок Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñм именем, Ð¼Ñ Ð¸ÑполÑзÑем имÑ, а заÑем Ð¸Ð½Ð´ÐµÐºÑ ÑÑÑоки. ÐÑ Ñакже можеÑе иÑполÑзоваÑÑ ÑолÑко Ð¸Ð½Ð´ÐµÐºÑ ÑÑÑоки, еÑли избегаеÑе иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½ÑÑ ÑÑÑок.
ÐмеÑÑо Ñого ÑÑÐ¾Ð±Ñ ÑÑÑанавливаÑÑ Ð½Ð¾Ð¼ÐµÑ ÐºÐ¾Ð½ÐµÑной ÑÑÑоки, Ñ ÑеÑил ÑказаÑÑ, ÑколÑко ÑÑеков должен Ð¾Ñ Ð²Ð°ÑиÑÑ ÑÑÐ¾Ñ ÑлеменÑ, иÑполÑзÑÑ ÐºÐ»ÑÑевое Ñлово span. Ðне нÑавиÑÑÑ ÑÑÐ¾Ñ Ð¿Ð¾Ð´Ñ Ð¾Ð´, поÑколÑÐºÑ Ð¿Ñи ÑабоÑе Ñ ÑиÑÑемой макеÑа Ñ Ð½ÐµÑколÑкими ÑÑолбÑами Ð¼Ñ Ð¾Ð±ÑÑно дÑмаем о Ð±Ð»Ð¾ÐºÐ°Ñ Ñ ÑоÑки зÑÐµÐ½Ð¸Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва ÑÑеков ÑеÑки, коÑоÑÑе они Ð¾Ñ Ð²Ð°ÑÑваÑÑ, и в завиÑимоÑÑи Ð¾Ñ ÑÑого коÑÑекÑиÑÑем. ЧÑÐ¾Ð±Ñ ÑвидеÑÑ, как блоки вÑÑавниваÑÑÑÑ Ð¿Ð¾ ÑÑекам, иÑполÑзÑйÑе инÑпекÑÐ¾Ñ ÑеÑки Firefox Grid Inspector. Ðн наглÑдно демонÑÑÑиÑÑеÑ, как ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ñ Ð½Ð°Ñи пÑедмеÑÑ.

СÑÑеÑÑвÑÑÑ Ð½ÐµÐºÐ¾ÑоÑÑе клÑÑевÑе ÑазлиÑÐ¸Ñ Ð² Ñом, как Ð¼Ð°ÐºÐµÑ ÑеÑки ÑабоÑÐ°ÐµÑ Ð½Ð°Ð´ ÑеÑоÑнÑми ÑиÑÑемами, коÑоÑÑе вÑ, возможно, иÑполÑзовали Ñанее. Ðак Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе видеÑÑ, нам не нÑжно добавлÑÑÑ ÐºÐ°ÐºÑÑ-либо ÑазмеÑÐºÑ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑÑÑоки, ÑеÑоÑнÑе ÑиÑÑÐµÐ¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑделаÑÑ ÑÑо, ÑÑÐ¾Ð±Ñ Ð¾ÑÑановиÑÑ ÑлеменÑÑ, поÑвлÑÑÑиеÑÑ Ð² ÑÑÑоке вÑÑе. С помоÑÑÑ CSS Grid Layout Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ ÑазмеÑаÑÑ ÑлеменÑÑ Ð² ÑÑÑоки, не опаÑаÑÑÑ, ÑÑо они поднимÑÑÑÑ Ð² ÑÑÑÐ¾ÐºÑ Ð²ÑÑе, еÑли она оÑÑанеÑÑÑ Ð¿ÑÑÑой. ÐлагодаÑÑ ÑÑÐ¾Ð¼Ñ ÑÑÑÐ¾Ð³Ð¾Ð¼Ñ ÑазмеÑÐµÐ½Ð¸Ñ ÑÑолбÑов и ÑÑÑок Ð¼Ñ Ñакже можем легко оÑÑавиÑÑ Ð¿ÑÑÑое пÑоÑÑÑанÑÑво в наÑем макеÑе. Ðам Ñакже не нÑÐ¶Ð½Ñ ÑпеÑиалÑнÑе клаÑÑÑ, ÑÑÐ¾Ð±Ñ ÑÑнÑÑÑ Ð¸Ð»Ð¸ ÑолкаÑÑ ÑлеменÑÑ, ÑÑÐ¾Ð±Ñ Ð²Ð´Ð°Ð²Ð»Ð¸Ð²Ð°ÑÑ Ð¸Ñ Ð² ÑеÑкÑ. ÐÑе, ÑÑо нам нÑжно ÑделаÑÑ, ÑÑо ÑказаÑÑ Ð½Ð°ÑалÑнÑÑ Ð¸ конеÑнÑÑ ÑÑÑÐ¾ÐºÑ Ð´Ð»Ñ ÑлеменÑа.
ÐоÑÑÑоение макеÑа Ñ Ð¸ÑполÑзованием 12-ÑÑолбÑовой ÑиÑÑемÑ
ЧÑÐ¾Ð±Ñ ÑвидеÑÑ, как ÑÑÐ¾Ñ Ð¼ÐµÑод макеÑа ÑабоÑÐ°ÐµÑ Ð½Ð° пÑакÑике, Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ ÑоздаÑÑ ÑÐ¾Ñ Ð¶Ðµ ÑамÑй макеÑ, коÑоÑÑй Ð¼Ñ Ñоздали Ñ grid-template-areas, на ÑÑÐ¾Ñ Ñаз иÑполÑзÑÑ ÑеÑоÑнÑÑ ÑиÑÑÐµÐ¼Ñ Ð¸Ð· 12 ÑÑолбÑов. Я наÑÐ¸Ð½Ð°Ñ Ñ Ñой же ÑазмеÑки, коÑоÑÐ°Ñ Ð¸ÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð¿ÑимеÑа облаÑÑей Ñаблона ÑеÑки.
<div class="wrapper">
<header class="main-head">The header</header>
<nav class="main-nav">
<ul>
<li><a href="">Nav 1</a></li>
<li><a href="">Nav 2</a></li>
<li><a href="">Nav 3</a></li>
</ul>
</nav>
<article class="content">
<h1>Main article area</h1>
<p>
In this layout, we display the areas in source order for any screen less
that 500 pixels wide. We go to a two column layout, and then to a three
column layout by redefining the grid, and the placement of items on the
grid.
</p>
</article>
<aside class="side">Sidebar</aside>
<div class="ad">Advertising</div>
<footer class="main-footer">The footer</footer>
</div>
ÐаÑем Ñ Ð½Ð°ÑÑÑÐ°Ð¸Ð²Ð°Ñ ÑеÑÐºÑ ÐºÐ°Ðº в пÑимеÑе вÑÑе.
.wrapper {
display: grid;
grid-template-columns: repeat(12, [col-start] 1fr);
grid-gap: 20px;
}
ÐÑ Ñнова ÑобиÑаемÑÑ ÑделаÑÑ ÑÑÐ¾Ñ Ð¼Ð°ÐºÐµÑ Ð°Ð´Ð°Ð¿ÑивнÑм, но на ÑÑÐ¾Ñ Ñаз Ñ Ð¸ÑполÑзованием именованнÑÑ Ð»Ð¸Ð½Ð¸Ð¹. ÐÐ°Ð¶Ð´Ð°Ñ ÐºÐ¾Ð½ÑÑолÑÐ½Ð°Ñ ÑоÑка бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ ÑеÑÐºÑ Ð¸Ð· 12 ÑÑолбÑов, однако колиÑеÑÑво доÑожек, коÑоÑÑе бÑдÑÑ Ð¾Ñ Ð²Ð°ÑÑваÑÑ ÑлеменÑÑ, бÑÐ´ÐµÑ Ð¼ÐµÐ½ÑеÑÑÑ Ð² завиÑимоÑÑи Ð¾Ñ ÑазмеÑа ÑкÑана.
ÐÑежде вÑего Ð¼Ñ Ð·Ð°Ð¿ÑÑкаем мобилÑнÑе ÑÑÑÑойÑÑва, и вÑе, ÑÑо нам нÑжно Ð´Ð»Ñ ÑамÑÑ ÑÐ·ÐºÐ¸Ñ ÑкÑанов, - ÑÑо ÑÑÐ¾Ð±Ñ ÑлеменÑÑ Ð¾ÑÑавалиÑÑ Ð² иÑÑ Ð¾Ð´Ð½Ð¾Ð¼ поÑÑдке и бÑли ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ñ Ð¿ÑÑмо по ÑеÑке.
.wrapper > * {
grid-column: col-start / span 12;
}
Ð ÑледÑÑÑей конÑÑолÑной ÑоÑке Ð¼Ñ Ñ Ð¾Ñим пеÑейÑи к двÑÑ ÐºÐ¾Ð»Ð¾Ð½Ð¾ÑÐ½Ð¾Ð¼Ñ Ð¼Ð°ÐºÐµÑÑ. ÐÐ°Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº и навигаÑÐ¸Ñ Ð¿Ð¾-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð¾Ñ Ð²Ð°ÑÑваÑÑ Ð²ÑÑ ÑеÑкÑ, поÑÑÐ¾Ð¼Ñ Ð½Ð°Ð¼ не нÑжно ÑказÑваÑÑ Ð´Ð»Ñ Ð½Ð¸Ñ ÐºÐ°ÐºÐ¾Ðµ-либо позиÑиониÑование. ÐÐ¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»Ñ Ð½Ð°ÑинаеÑÑÑ Ñ Ð¿ÐµÑвой ÑÑÑоки ÑÑолбÑа Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ col-start, Ð¾Ñ Ð²Ð°ÑÑваÑÑей 3 ÑÑÑоки. Ðн идÑÑ Ð¿Ð¾Ñле ÑÑÑоки 3, Ñак как заголовок и навигаÑÐ¸Ñ Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² пеÑвÑÑ Ð´Ð²ÑÑ Ð´Ð¾ÑÐ¾Ð¶ÐºÐ°Ñ ÑÑÑоки.
ÐÐ°Ð½ÐµÐ»Ñ Ð¾Ð±ÑÑвлений Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð½Ð¸Ð¶Ðµ боковой панели, поÑÑÐ¾Ð¼Ñ Ð½Ð°ÑинаеÑÑÑ Ñ ÑÑÑоки ÑеÑки 4. ÐаÑем Ñ Ð½Ð°Ñ ÐµÑÑÑ Ð¾Ñновное ÑодеÑжимое и ÑÑÑеÑ, наÑинаÑÑийÑÑ Ñ col-start 4 и Ð¾Ñ Ð²Ð°ÑÑваÑÑий 9 ÑÑеков, ведÑÑÐ¸Ñ Ð¸Ñ Ðº конÑÑ ÑеÑки.
@media (min-width: 500px) {
.side {
grid-column: col-start / span 3;
grid-row: 3;
}
.ad {
grid-column: col-start / span 3;
grid-row: 4;
}
.content,
.main-footer {
grid-column: col-start 4 / span 9;
}
nav ul {
display: flex;
justify-content: space-between;
}
}
ÐаконеÑ, Ð¼Ñ Ð¿ÐµÑÐµÑ Ð¾Ð´Ð¸Ð¼ к ÑÑÑÑ ÐºÐ¾Ð»Ð¾Ð½Ð¾Ñной веÑÑии ÑÑого макеÑа. Ðаголовок пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ ÑаÑпÑоÑÑÑанÑÑÑÑÑ Ð¿ÑÑмо по ÑеÑке, но ÑепеÑÑ Ð½Ð°Ð²Ð¸Ð³Ð°ÑÐ¸Ñ Ð¿ÐµÑемеÑаеÑÑÑ Ð²Ð½Ð¸Ð·, ÑÑÐ¾Ð±Ñ ÑÑаÑÑ Ð¿ÐµÑвой боковой панелÑÑ Ñ Ð¾ÑновнÑм ÑодеÑжимÑм, а заÑем боковой панелÑÑ ÑÑдом Ñ Ð½ÐµÐ¹. ФÑÑÐµÑ ÑепеÑÑ Ñакже Ð¾Ñ Ð²Ð°ÑÑÐ²Ð°ÐµÑ Ð²ÐµÑÑ Ð¼Ð°ÐºÐµÑ.
@media (min-width: 700px) {
.main-nav {
grid-column: col-start / span 2;
grid-row: 2 / 4;
}
.content {
grid-column: col-start 3 / span 8;
grid-row: 2 / 4;
}
.side {
grid-column: col-start 11 / span 2;
grid-row: 2;
}
.ad {
grid-column: col-start 11 / span 2;
grid-row: 3;
}
.main-footer {
grid-column: col-start / span 12;
}
nav ul {
flex-direction: column;
}
}
Снова ÑмоÑÑим Grid Inspector, ÑÑÐ¾Ð±Ñ ÑвидеÑÑ, какÑÑ ÑоÑÐ¼Ñ Ð¿ÑинÑл Ð½Ð°Ñ Ð¼Ð°ÐºÐµÑ.

ÐÑи Ñоздании ÑÑого макеÑа ÑледÑÐµÑ Ð¾ÑмеÑиÑÑ, ÑÑо нам не нÑжно бÑло Ñвно ÑазмеÑаÑÑ ÐºÐ°Ð¶Ð´Ñй ÑÐ»ÐµÐ¼ÐµÐ½Ñ ÑеÑки в каждой конÑÑолÑной ÑоÑке. ÐÑ ÑнаÑледовали Ñанее наÑÑÑоенное ÑазмеÑение â пÑеимÑÑеÑÑво ÑабоÑÑ "ÑнаÑала мобилÑнÑй". ÐÑ Ñакже можем воÑполÑзоваÑÑÑÑ Ð¿ÑеимÑÑеÑÑвами авÑомаÑиÑеÑкого ÑазмеÑÐµÐ½Ð¸Ñ ÑеÑки. Ð¡Ð¾Ñ ÑанÑÑ ÑлеменÑÑ Ð² логиÑеÑком поÑÑдке, авÑомаÑиÑеÑкое ÑазмеÑение Ð´ÐµÐ»Ð°ÐµÑ Ð´Ð¾Ð²Ð¾Ð»Ñно много ÑабоÑÑ Ð·Ð° Ð½Ð°Ñ Ð¿Ñи ÑазмеÑении ÑлеменÑов в ÑеÑке. РпоÑледнем пÑимеÑе ÑÑого ÑÑководÑÑва Ð¼Ñ Ñоздадим макеÑ, коÑоÑÑй полноÑÑÑÑ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ Ð¾Ñ Ð°Ð²ÑомаÑиÑеÑкого ÑазмеÑениÑ.
Создание ÑпиÑка Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð°Ð²ÑоÑазмеÑениÑ
Ðногие макеÑÑ, по ÑÑÑи, пÑедÑÑавлÑÑÑ Ñобой набоÑÑ "каÑÑоÑек" - ÑпиÑки пÑодÑкÑов, галеÑеи изобÑажений и Ñак далее. СеÑка Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÐµÐ½Ñ Ð»ÐµÐ³ÐºÐ¾ ÑоздаваÑÑ ÑÑи ÑпиÑки Ñаким обÑазом, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ бÑли оÑзÑвÑивÑми, без Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼ÐµÐ´Ð¸Ð°Ð²ÑÑажений. Ð ÑледÑÑÑем пÑимеÑе Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð¸ÑÑÑ CSS Grid и Flexbox макеÑÑ, ÑÑÐ¾Ð±Ñ ÑделаÑÑ Ð¿ÑоÑÑой Ð¼Ð°ÐºÐµÑ ÑпиÑка пÑодÑкÑов.
РазмеÑка моего ÑпиÑка-ÑÑо неÑпоÑÑдоÑеннÑй ÑпиÑок ÑлеменÑов. ÐаждÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ ÑодеÑÐ¶Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº, некоÑоÑÑй ÑекÑÑ ÑазлиÑной вÑÑоÑÑ Ð¸ ÑÑÑÐ»ÐºÑ Ñ Ð¿ÑизÑвом к дейÑÑвиÑ.
<ul class="listing">
<li>
<h2>Item One</h2>
<div class="body"><p>The content of this listing item goes here.</p></div>
<div class="cta"><a href="">Call to action!</a></div>
</li>
<li>
<h2>Item Two</h2>
<div class="body"><p>The content of this listing item goes here.</p></div>
<div class="cta"><a href="">Call to action!</a></div>
</li>
<li class="wide">
<h2>Item Three</h2>
<div class="body">
<p>The content of this listing item goes here.</p>
<p>This one has more text than the other items.</p>
<p>Quite a lot more</p>
<p>Perhaps we could do something different with it?</p>
</div>
<div class="cta"><a href="">Call to action!</a></div>
</li>
<li>
<h2>Item Four</h2>
<div class="body"><p>The content of this listing item goes here.</p></div>
<div class="cta"><a href="">Call to action!</a></div>
</li>
<li>
<h2>Item Five</h2>
<div class="body"><p>The content of this listing item goes here.</p></div>
<div class="cta"><a href="">Call to action!</a></div>
</li>
</ul>
ÐÑ ÑобиÑаемÑÑ ÑоздаÑÑ ÑеÑÐºÑ Ñ Ð³Ð¸Ð±ÐºÐ¸Ð¼ колиÑеÑÑвом гибкиÑ
ÑÑолбÑов. Я Ñ
оÑÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ никогда не ÑÑановилиÑÑ Ð¼ÐµÐ½ÑÑе 200 пикÑелей, а заÑем делили лÑбое доÑÑÑпное оÑÑавÑееÑÑ Ð¿ÑоÑÑÑанÑÑво поÑÐ¾Ð²Ð½Ñ â Ñак Ð¼Ñ Ð²Ñегда полÑÑаем одинаковÑе по ÑиÑине доÑожки ÑÑолбÑов. ÐÑ Ð´Ð¾ÑÑигаем ÑÑого Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑнкÑии minmax() в наÑей повÑоÑной ноÑаÑии Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑазмеÑа ÑÑека.
.listing {
list-style: none;
margin: 2em;
display: grid;
grid-gap: 20px;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
Ðак ÑолÑко Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑ ÑÑÐ¾Ñ CSS, ÑлеменÑÑ Ð½Ð°ÑинаÑÑ ÑаÑкладÑваÑÑÑÑ Ð² виде ÑеÑки. ÐÑли Ñ ÑÐ´ÐµÐ»Ð°Ñ Ð¾ÐºÐ½Ð¾ менÑÑе или ÑиÑе, колиÑеÑÑво доÑожек ÑÑолбÑов измениÑÑÑ â без Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи пеÑеопÑеделÑÑÑ ÑеÑкÑ.
ÐаÑем Ñ Ð¼Ð¾Ð³Ñ Ð¿ÑивеÑÑи в поÑÑдок внÑÑÑенние ÑаÑÑи ÑÑеек, иÑполÑзÑÑ flexbox. Я ÑÑÑановил Ð´Ð»Ñ ÑлеменÑа ÑпиÑка display: flex and и flex-direction Ð´Ð»Ñ column. ÐаÑем Ñ Ð¼Ð¾Ð³Ñ Ð¸ÑполÑзоваÑÑ margin auto Ð´Ð»Ñ .cta ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð´ÑолкнÑÑÑ ÑÑÐ¾Ñ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð²Ð½Ð¸Ð· к нижней ÑаÑÑи ÑÑейки.
.listing li {
border: 1px solid #ffe066;
border-radius: 5px;
display: flex;
flex-direction: column;
}
.listing .cta {
margin-top: auto;
border-top: 1px solid #ffe066;
padding: 10px;
text-align: center;
}
.listing .body {
padding: 10px;
}
ÐÑо дейÑÑвиÑелÑно одна из клÑÑевÑÑ Ð¿ÑиÑин, по коÑоÑой Ñ Ð±ÑÐ´Ñ Ð¸ÑполÑзоваÑÑ flexbox, а не ÑеÑкÑ, еÑли Ñ Ð¿ÑоÑÑо вÑÑÐ°Ð²Ð½Ð¸Ð²Ð°Ñ Ð¸Ð»Ð¸ ÑаÑпÑеделÑÑ ÑÑо-Ñо в одном измеÑении, ÑÑо ваÑÐ¸Ð°Ð½Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ flexbox.
ТепеÑÑ Ð²Ñе ÑÑо вÑглÑÐ´Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ завеÑÑÑннÑм. Ðднако иногда Ñ Ð½Ð°Ñ ÐµÑÑÑ ÑÑи ÑлеменÑÑ, коÑоÑÑе ÑодеÑÐ¶Ð°Ñ Ð±Ð¾Ð»ÑÑе конÑенÑа, Ñем дÑÑгие. ÐÑло Ð±Ñ Ð½ÐµÐ¿Ð»Ð¾Ñ
о, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ оÑ
ваÑÑвали два ÑÑека, и Ñогда они не бÑдÑÑ Ñакими вÑÑокими. У Ð¼ÐµÐ½Ñ ÐµÑÑÑ ÐºÐ»Ð°ÑÑ wide Ð´Ð»Ñ Ð±Ð¾Ð»ÑÑого ÑлеменÑа, и Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑ Ð¿Ñавило grid-column-end Ñо знаÑением span 2. ТепеÑÑ, когда grid ÑÑолкнÑÑÑÑ Ñ ÑÑим ÑлеменÑом, он назнаÑÐ¸Ñ ÐµÐ¼Ñ Ð´Ð²Ð° ÑÑека. РнекоÑоÑÑÑ
ÑоÑкаÑ
ÑÑо ознаÑаеÑ, ÑÑо Ð¼Ñ Ð¿Ð¾Ð»ÑÑим ÑазÑÑв в ÑеÑке â Ñам, где Ð½ÐµÑ Ð¼ÐµÑÑа Ð´Ð»Ñ ÑазмеÑÐµÐ½Ð¸Ñ Ð´Ð²ÑÑ
ÑÑекового ÑлеменÑа.

Я Ð¼Ð¾Ð³Ñ Ð¿ÑивеÑÑи пÑиÑÐ¸Ð½Ñ Ð½ÐµÐ´Ð¾ÑÑаÑка Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ grid-auto-flow: dense в гÑид ÑÑейке. ÐÑдÑÑе оÑÑоÑожнÑ, когда делаеÑе ÑÑо, поÑколÑÐºÑ ÑÑо дейÑÑвиÑелÑно ÑÐ²Ð¾Ð´Ð¸Ñ ÑлеменÑÑ Ð¾Ñ Ð¸Ñ
логиÑеÑкого иÑÑ
одного поÑÑдка. ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð´ÐµÐ»Ð°ÑÑ ÑÑо ÑолÑко в Ñом ÑлÑÑае, еÑли ваÑи ÑлеменÑÑ Ð½Ðµ имеÑÑ ÑÑÑановленного поÑÑдка â и бÑÑÑ Ð² кÑÑÑе пÑоблем поÑÑдка вкладок поÑле иÑÑоÑника, а не ваÑего пеÑеÑпоÑÑдоÑенного оÑобÑажениÑ.
.listing {
list-style: none;
margin: 2em;
display: grid;
grid-gap: 20px;
grid-auto-flow: dense;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
.listing .wide {
grid-column-end: span 2;
}
ÐÑÐ¾Ñ Ð¼ÐµÑод иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°Ð²ÑомаÑиÑеÑкого ÑазмеÑÐµÐ½Ð¸Ñ Ñ Ð½ÐµÐºÐ¾ÑоÑÑми пÑавилами, пÑименÑемÑми к опÑеделÑннÑм ÑлеменÑам, оÑÐµÐ½Ñ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ и Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð¼Ð¾ÑÑ Ð²Ð°Ð¼ Ñ ÐºÐ¾Ð½ÑенÑом, коÑоÑÑй вÑводиÑÑÑ CMS, напÑимеÑ, где Ñ Ð²Ð°Ñ ÐµÑÑÑ Ð¿Ð¾Ð²ÑоÑÑÑÑиеÑÑ ÑлеменÑÑ Ð¸, возможно, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе добавиÑÑ ÐºÐ»Ð°ÑÑ Ðº опÑеделÑннÑм ÑлеменÑам, когда они оÑобÑажаÑÑÑÑ Ð² HTML.
ÐалÑнейÑие иÑÑледованиÑ
ÐÑÑÑий ÑпоÑоб наÑÑиÑÑÑÑ Ð¸ÑполÑзоваÑÑ ÑеÑоÑнÑй макеÑ-ÑÑо пÑодолжаÑÑ ÑÑÑоиÑÑ Ð¿ÑимеÑÑ, подобнÑе Ñем, коÑоÑÑе Ð¼Ñ ÑаÑÑмоÑÑели здеÑÑ. ÐÑбеÑиÑе ÑÑо-Ñо, ÑÑо Ð²Ñ Ð¾Ð±ÑÑно ÑÑÑоиÑе, иÑполÑзÑÑ Ñвой ÑÑеймвоÑк вÑбоÑа или иÑполÑзÑÑ Ð¿Ð¾Ð¿Ð»Ð°Ð²ÐºÐ¸, и поÑмоÑÑиÑе, ÑможеÑе ли Ð²Ñ Ð¿Ð¾ÑÑÑоиÑÑ ÐµÐ³Ð¾ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑеÑки. Ðе забÑдÑÑе найÑи пÑимеÑÑ, коÑоÑÑе невозможно поÑÑÑоиÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑовÑеменнÑÑ Ð¼ÐµÑодов. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð·Ð½Ð°ÑаÑÑ, ÑÑо Ð²Ñ ÑеÑпаеÑе Ð²Ð´Ð¾Ñ Ð½Ð¾Ð²ÐµÐ½Ð¸Ðµ из жÑÑналов или дÑÑÐ³Ð¸Ñ Ð¸ÑÑоÑников, не ÑвÑзаннÑÑ Ñ Ð¸Ð½ÑеÑнеÑом. СеÑоÑнÑй Ð¼Ð°ÐºÐµÑ Ð¾ÑкÑÑÐ²Ð°ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи, коÑоÑÑÑ Ñ Ð½Ð°Ñ ÑанÑÑе не бÑло, нам не нÑжно бÑÑÑ Ð¿ÑивÑзаннÑми к Ñем же ÑÑаÑÑм макеÑам, ÑÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ ÐµÐ³Ð¾.
- For inspiration see the Layout Labs from Jen Simmons, she has been creating layouts based on a range of sources.
- For additional common layout patterns see Grid by Example, where there are many smaller examples of grid layout and also some larger UI patterns and full page layouts.