Semantik, qulay va moslashuvchan veb-maketlar uchun CSS Grid Hududlarining kuchini oching. Tushunarlilik uchun hududlarni nomlashni va ekspert maslahatlari bilan dizaynlarni turli qurilmalarga moslashtirishni o‘rganing.
CSS Grid Hududlari: Semantik Maket Nomlash va Moslashuvchan Dizayn Mahorati
Veb-dasturlashning dinamik olamida mustahkam, qo'llab-quvvatlanadigan va moslashuvchan maketlar yaratish juda muhim. CSS Grid Layout sahifa tuzilishiga bo'lgan yondashuvimizni inqilob qildi, misli ko'rilmagan darajada nazorat va moslashuvchanlikni taklif qildi. Uning eng kuchli xususiyatlari orasida CSS Grid Hududlari mavjud bo'lib, bu grid ichidagi elementlarni aniqlash va joylashtirishga semantik yondashuvdir. Ushbu qo'llanma CSS Grid Hududlari maketning o'qilishini qanday yaxshilashi, semantik tuzilmani osonlashtirishi va barcha qurilmalarda muammosiz moslashadigan murakkab moslashuvchan dizaynlarni yaratishga qanday imkon berishini chuqur o'rganadi.
Asosni tushunish: CSS Grid Layout
Grid Hududlariga sho'ng'ishdan oldin, CSS Grid Layoutning o'zining asosiy tushunchalarini anglab olish muhimdir. Grid Layout bu ikki o'lchovli maket tizimi bo'lib, veb-sahifani alohida qatorlar va ustunlarga bo'lishga, so'ngra tarkibni ushbu bo'linmalar ichiga aniqlik bilan joylashtirishga imkon beradi. Asosan bir o'lchovli maket tizimi (qator yoki ustun) bo'lgan Flexbox'dan farqli o'laroq, Grid murakkab, sahifa darajasidagi maketlarni boshqarishda ustunlik qiladi.
Yodda tutish kerak bo'lgan asosiy atamalar:
- Grid Konteyneri:
display: grid;yokidisplay: inline-grid;qo'llanilgan element. Bu element barcha to'g'ridan-to'g'ri grid elementlari uchun ota-ona bo'ladi. - Grid Elementi: Grid konteynerining to'g'ridan-to'g'ri farzandlari. Bular grid ichida joylashtiriladigan elementlardir.
- Grid Chizig'i: Grid tuzilmasini tashkil etuvchi gorizontal va vertikal ajratuvchi chiziqlar.
- Grid Yo'lagi: Ikki qo'shni grid chizig'i orasidagi bo'shliq, u qator yoki ustun bo'lishi mumkin.
- Grid Yacheykasi: Gridning eng kichik birligi, grid qatori va grid ustunining kesishmasi.
- Grid Hududi: To'rtta grid chizig'i bilan yaratilgan to'rtburchak maydon, u bir yoki bir nechta grid elementlarini joylashtirish uchun ishlatilishi mumkin.
CSS Grid Hududlari bilan tanishuv: Nomlashning Kuchi
CSS Grid Hududlari sizning grid maketingiz ichida alohida hududlarni aniqlash uchun yuqori darajadagi abstraktsiyani ta'minlaydi. Faqat chiziq raqamlari yoki qamrov xususiyatlariga tayanmasdan, gridingizning ma'lum hududlariga mazmunli nomlar berishingiz mumkin. Bu semantik ravshanlik qatlamini kiritadi va maket kodingizni sezilarli darajada o'qilishi oson va qo'llab-quvvatlanadigan qiladi.
Grid Hududlarini yoqadigan asosiy xususiyatlar:
grid-template-areas: Nomlangan grid hududlariga havola qilish orqali grid maketini belgilaydi.grid-area: Grid elementini nomlangan grid hududiga tayinlaydi.
grid-template-areas bilan Maketlarni Aniqlash
grid-template-areas xususiyati sehr sodir bo'ladigan joydir. U sizning CSS-ingiz ichida grid tuzilmangizni vizual tarzda tasvirlashga imkon beradi. Siz qatorlarni alohida satr qiymatlari bilan, va har bir satr ichidagi ustunlarni esa qo'shtirnoq ichidagi nomlar yordamida aniqlaysiz. Bo'sh satr ('') yoki nuqta (.) band bo'lmagan grid yacheykasini ifodalash uchun ishlatilishi mumkin.
Keling, keng tarqalgan veb-sayt maketini ko'rib chiqaylik:
HTML Tuzilmasi:
<div class="grid-container">
<header class="header">Sarlavha</header>
<nav class="nav">Navigatsiya</nav>
<main class="main">Asosiy Kontent</main>
<aside class="sidebar">Yon panel</aside>
<footer class="footer">Pastki qism</footer>
</div>
grid-template-areas bilan CSS:
.grid-container {
display: grid;
grid-template-columns: 1fr 3fr;
grid-template-rows: auto 1fr auto;
grid-template-areas:
"header header"
"nav main"
"sidebar main"
"footer footer";
gap: 20px;
height: 100vh;
}
.header { grid-area: header; }
.nav { grid-area: nav; }
.main { grid-area: main; }
.sidebar { grid-area: sidebar; }
.footer { grid-area: footer; }
Ushbu misolda:
- Bizda ikki ustunli (
1frva3fr) va uch qatorli (auto,1fr,auto) grid konteyneri mavjud. grid-template-areasxususiyati bu nomlangan hududlar grid yacheykalarini qanday egallashini vizual tarzda xaritalaydi. Birinchi satr `"header header"` 'header' hududi birinchi qatordagi ikkala ustunni qamrab olishini bildiradi.- Ikkinchi satr `"nav main"` 'nav' ni birinchi ustunga va 'main' ni ikkinchi qatorning ikkinchi ustuniga joylashtiradi.
- Uchinchi satr `"sidebar main"` 'sidebar' ni birinchi ustunga va 'main' ni yana uchinchi qatorning ikkinchi ustuniga joylashtiradi. E'tibor bering, bu yerda 'main' ikki qatorni qamrab oladi.
- Yakuniy satr `"footer footer"` 'footer' hududi uchun oxirgi qatordagi ikkala ustunni qamrab oladi.
E'tibor bering, har bir bola elementdagi grid-area xususiyati grid-template-areas da ishlatilgan nomlarga to'g'ridan-to'g'ri mos keladi. Bu har bir kontent qismining qaerga tegishli ekanligini tushunishni juda intuitiv qiladi.
Nima uchun Grid Hududlarini Nomlash Kerak? Semantik Afzallik
Grid Hududlarining haqiqiy kuchi ularning semantik ma'nosidadir. 'header', 'nav', 'main', 'sidebar' va 'footer' kabi nomlarni berish orqali siz shunchaki elementlarni joylashtirmayapsiz; siz veb-sahifangizning me'moriy zonalarini belgilayapsiz. Buning bir nechta chuqur afzalliklari bor:
- O'qilishi Yaxshilanganligi: CSS-ni ko'rib chiqayotganda, HTML tuzilmasiga qaramasdan ham, maketning har bir bo'limi qanday rol o'ynashi darhol aniq bo'ladi. Bu jamoaviy hamkorlik va uzoq muddatli loyihani qo'llab-quvvatlash uchun bebaho.
- Qo'llab-quvvatlanuvchanlik Yaxshilanganligi: Agar maketni qayta ishlash yoki komponentni ko'chirish kerak bo'lsa, buni ko'pincha murakkab chiziq raqamlari yoki qamrov hisob-kitoblarini sozlashsiz, shunchaki elementning
grid-areaxususiyatini qayta tayinlash orqali amalga oshirishingiz mumkin. - Semantik Aniqllik: Nomlar mo'ljallangan tarkib va funktsiyani aks ettiradi, vizual maketni HTML elementlarining asosiy semantik ma'nosi bilan moslashtiradi.
- Osonroq Qayta Qurish: Maket tuzilmasini o'zgartirish
grid-template-areasni qayta belgilash masalasiga aylanadi, bu alohida grid elementlari joylashuvini manipulyatsiya qilishdan ko'ra vizualroq va intuitivroq jarayondir.
Tasavvur qiling, siz maketni yon panel asosiy kontentdan oldin paydo bo'ladigan qilib o'zgartirishingiz kerak. Nomlangan hududlar bilan bu oddiy sozlashdir:
.grid-container {
display: grid;
grid-template-columns: 1fr 3fr;
grid-template-rows: auto 1fr auto;
grid-template-areas:
"header header"
"main sidebar" /* Bu yerda tartib o'zgartirildi */
"footer footer";
gap: 20px;
height: 100vh;
}
/* Elementlar uchun grid-area tayinlovlari bir xil bo'lib qoladi */
.header { grid-area: header; }
.main { grid-area: main; }
.sidebar { grid-area: sidebar; }
.footer { grid-area: footer; }
Ushbu o'zgartirilgan misolda, 'main' va 'sidebar' pozitsiyalarini almashtirish uchun grid-template-areas ta'rifi yangilandi. Muhimi shundaki, bola elementlardagi grid-area tayinlovlari o'zgarmadi, bu esa ushbu semantik yondashuvning kuchini namoyish etadi.
Grid Hududlari bilan Moslashuvchan Dizaynlarni Yaratish
CSS Grid Hududlarining eng muhim afzalliklaridan biri ularning moslashuvchan dizaynni osonlashtirish qobiliyatidir. Media so'rovlardan foydalanib, turli ekran o'lchamlarida grid-template-areas-ni qayta belgilashingiz mumkin, bu esa minimal kod bilan maketingizni butunlay o'zgartiradi.
Keling, avvalgi misolimizni moslashuvchanlikni qo'shish uchun kengaytiraylik. Kichikroq ekranlarda biz barcha bo'limlar vertikal ravishda joylashadigan bir ustunli maketni xohlashimiz mumkin.
/* Avval mobil qurilmalar uchun yondashuv */
.grid-container {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: auto auto 1fr auto auto;
grid-template-areas:
"header"
"nav"
"main"
"sidebar"
"footer";
gap: 15px;
height: auto; /* Balandlikning tabiiy ravishda moslashishiga ruxsat berish */
}
.header { grid-area: header; }
.nav { grid-area: nav; }
.main { grid-area: main; }
.sidebar { grid-area: sidebar; }
.footer { grid-area: footer; }
/* Planshet va Desktop uchun sozlashlar */
@media (min-width: 768px) {
.grid-container {
grid-template-columns: 1fr 3fr;
grid-template-rows: auto 1fr auto;
grid-template-areas:
"header header"
"nav main"
"sidebar main"
"footer footer";
gap: 20px;
height: 100vh;
}
/* Bu yerda grid-area'ni qayta tayinlash ko'pincha kerak emas, agar nomlar mos kelsa,
lekin kerak bo'lsa ularni o'zgartirish *mumkinligini* bilish yaxshi.
Bu holda, nomlar shunchaki shablon hududlarida qayta tartiblangan. */
}
Ushbu moslashuvchan misolda:
- Standart (avval mobil) uslublar har bir nomlangan hudud o'z qatorini egallaydigan bitta ustunli maketni belgilaydi.
768pxva undan yuqori o'lchamdagi media so'rovgrid-template-areas-ni qayta belgilab, dastlabki desktop misolimizga o'xshash murakkabroq, ko'p ustunli maket yaratadi.
Ushbu yondashuv ekran o'lchamiga qarab maketda keskin o'zgarishlarga imkon beradi, barchasi grid-template-areas xususiyati orqali nafis tarzda boshqariladi.
Grid Maketlaringizni Xalqarolashtirish
Global auditoriya uchun dizayn yaratayotganda, moslashuvchan maketlar juda muhim, lekin turli yozuv rejimlari va til talablariga moslashish ham shunday. CSS Grid, va ayniqsa Grid Hududlari, buning uchun ajoyib darajada mos keladi:
- O'ngdan-chapga (RTL) qo'llab-quvvatlash: O'ngdan chapga o'qiladigan tillarda (arab yoki ibroniy kabi), HTML elementiga
directionxususiyatini o'zgartirganingizda ustunlarning vizual tartibi tabiiy ravishda o'zgaradi. Grid Hududlari semantik nomlarni maket slotlariga bog'laganligi sababli, sizning nomlangan hududlaringiz o'z ma'nosini saqlab qoladi, ammo ularning vizual joylashuvi avtomatik ravishda moslashadi. Masalan, LTR maketida chapda bo'lgan 'sidebar' `grid-template-areas` kontseptual ravishda aniqlangan va mutlaq chap/o'ng pozitsiyaga bog'lanmagan bo'lsa, RTL maketida o'ngda paydo bo'ladi. - Til Kengayishi: Ba'zi tillar boshqalarga qaraganda ko'proq joy talab qiladi. Ustunlar uchun
frbirliklari kabi moslashuvchan birliklardan foydalanish va qatorlarniautobilan belgilash orqali sizning gridingiz turli xil kontent uzunliklariga osonroq moslasha oladi. Agar ma'lum bir maket uzunroq so'zlar yoki jumlalarga ega til uchun sezilarli sozlashni talab qilsa, ushbu lingvistik ehtiyojlar uchun maxsusgrid-template-areas-ni qayta belgilash uchun media so'rovlardan (yoki hatto xususiyat so'rovlaridan) foydalanishingiz mumkin. - Ierarxik Nomlash: Murakkab maketlarni loyihalashda, ularning ierarxik ahamiyatini yoki kontent turini aks ettiruvchi hududlarni nomlashni o'ylab ko'ring, bu turli madaniy va lingvistik kontekstlarda tushunishga yordam beradi. Masalan, shunchaki 'content' o'rniga 'primary-content' yoki 'secondary-content' dan foydalanishingiz mumkin.
RTL ni hisobga olish misoli:
Aytaylik, sizda asosiy kontent maydoni va ikkinchi darajali navigatsiya maydoni bo'lgan maket bor.
HTML:
<div class="app-layout">
<nav class="main-nav">Navigatsiya</nav>
<main class="content-area">Asosiy Kontent</main>
</div>
CSS (LTR):
.app-layout {
display: grid;
grid-template-columns: 150px 1fr;
grid-template-areas:
"nav content";
}
.main-nav { grid-area: nav; }
.content-area { grid-area: content; }
CSS (RTL - HTML yoki bodyga `direction: rtl;` qo'shish orqali erishiladi):
`direction: rtl;` konteynerga yoki uning ajdodiga qo'llanilganda:
.app-layout {
display: grid;
grid-template-columns: 150px 1fr; /* Eslatma: ustun kengliklari RTL da boshqacha ishlaydi */
grid-template-areas:
"nav content"; /* Semantik nomlar hali ham qo'llaniladi */
}
.main-nav { grid-area: nav; }
.content-area { grid-area: content; }
RTL kontekstida brauzer avtomatik ravishda 1fr ustuni endi o'ngda va 150px ustuni chapda bo'lishi kerakligini tushunadi. Nomlangan slotlari bilan grid-template-areas ta'rifi bir xil bo'lib qoladi, lekin bu slotlarning vizual joylashuvi teskari bo'ladi. 'nav' hududi endi o'ngda, 'content' esa chapda paydo bo'ladi, RTL oqimiga muvofiq.
Ilg'or Texnikalar va Eng Yaxshi Amaliyotlar
Grid Hududlari maketni soddalashtirsa-da, ularni o'zlashtirish bir nechta ilg'or texnikalarni tushunishni va eng yaxshi amaliyotlarni qabul qilishni o'z ichiga oladi:
1. Izchil Nomlash Qoidalari
Grid hududlaringiz uchun aniq va izchil nomlash qoidasini o'rnating. Bu quyidagicha bo'lishi mumkin:
- Barchasi kichik harflarda:
header,main-content,side-nav - Ko'p so'zli nomlar uchun defisdan foydalanish:
hero-section,product-gallery area1,column-2kabi umumiy nomlardan qochish.
Izchillik qo'llab-quvvatlanuvchanlik va jamoaviy hamkorlik uchun kalit hisoblanadi.
2. Bo'sh Yacheykalar uchun Nuqta (.) dan Foydalanish
Gridingizda ataylab hech qanday nomlangan hudud tomonidan egallanmagan bo'shliqlar bo'lsa, bu bo'sh yacheykalarni ifodalash uchun nuqtalardan (.) foydalaning. Bu grid-template-areas ta'rifini yanada aniqroq qiladi.
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-areas:
"header header ."
"nav main ."
"footer footer .";
}
Bu yerda har bir qatordagi uchinchi ustun ataylab bo'sh qoldirilgan.
3. grid-area bilan Bir Nechta Qator va Ustunlarni Qamrab Olish
grid-template-areas umumiy tuzilmani belgilasa-da, siz bitta grid elementini belgilangan nomlangan hududlar ichidagi bir nechta yacheykalarni qamrab olishi uchun grid-area qisqartma xususiyatidan ham foydalanishingiz mumkin. Bu xususiyat to'rtta qiymatni qabul qiladi: <row-start> <column-start> <row-end> <column-end>. Biroq, nomlangan hududlar bilan ishlaganda, siz qamrab olmoqchi bo'lgan hududning boshlanish va tugash chiziqlarini belgilash yoki bir nechta yacheykalarni qamrab olish uchun belgilagan hududni to'g'ridan-to'g'ri nomlash orqali buni soddalashtirishingiz mumkin.
Keling, 'main' ikki ustunni qamrab olgan ushbu maketni ko'rib chiqaylik:
.grid-container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: auto 1fr;
grid-template-areas:
"header header header"
"nav main main"
"footer footer footer";
}
.header { grid-area: header; }
.nav { grid-area: nav; }
.main { grid-area: main; }
.footer { grid-area: footer; }
Bu holda, `main` hududi grid-template-areas xususiyatining o'zida ikki ustunni qamrab oladigan qilib belgilangan. Bu nomlangan hududlardan foydalanganda qamrovga erishishning yanada semantik usulidir.
Shu bilan bir qatorda, agar kerak bo'lsa, aniq chiziq raqamlaridan foydalanishingiz mumkin, ammo bu semantik afzallikdan chalg'itadi:
/* Agar nomlar mavjud bo'lsa, kamroq semantik yondashuv */
.main {
grid-column: 2 / 4; /* Ustun chizig'i 2 dan 4 gacha qamrab olish */
grid-row: 2 / 3; /* Qator chizig'i 2 dan 3 gacha qamrab olish */
}
Tavsiya: Yaxshiroq semantik ravshanlik uchun har doim qamrovni to'g'ridan-to'g'ri grid-template-areas ichida belgilashga harakat qiling.
4. Ustma-ust Tushadigan Hududlar
Grid Hududlari ustma-ust tushishi mumkin. Agar ikkita element bir xil hududga tayinlangan bo'lsa yoki ularning belgilangan hududlari kesishsa, HTML manba tartibida keyinroq kelgan element oldingisining ustida paydo bo'ladi. Bu elementlarni qatlamlash uchun foydali bo'lishi mumkin, masalan, matn orqasidagi banner tasviri.
.grid-container {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr;
grid-template-areas:
"hero-image"
"hero-text";
}
.hero-image {
grid-area: hero-image;
background-image: url('path/to/image.jpg');
background-size: cover;
}
.hero-text {
grid-area: hero-text;
align-self: center; /* Matnni vertikal markazlashtirish */
text-align: center;
color: white;
}
/* Ularni vizual ravishda bir-birining ustiga joylashtirish uchun */
.hero-image {
grid-area: 1 / 1 / 2 / 2; /* Rasmni aniq birinchi yacheykaga joylashtirish */
}
.hero-text {
grid-area: 1 / 1 / 2 / 2; /* Matnni xuddi shu yacheykaga joylashtirish */
align-self: center;
text-align: center;
}
Ikkala elementni bir xil grid hududiga (yoki ustma-ust tushadigan hududlarga) tayinlash orqali, .hero-text elementi HTML manbasida keyinroq paydo bo'lganligi sababli .hero-image ustiga qatlam bo'lib tushadi. Bu vizual jihatdan jozibali maketlar yaratish uchun kuchli usuldir.
5. Dinamik Grid Hududlarini Yaratish (JavaScript)
CSS Grid Hududlari asosan CSS xususiyati bo'lsa-da, siz kontent yoki foydalanuvchi o'zaro ta'siriga asoslanib grid hududlarini dinamik ravishda yaratish kerak bo'lgan holatlarga duch kelishingiz mumkin. Bunga JavaScript yordamida grid-template-areas xususiyatini manipulyatsiya qilish yoki elementlarga grid-area qiymatlarini tayinlash orqali erishish mumkin.
Masalan, agar sizda gridga joylashtirilishi kerak bo'lgan komponentlar to'plami bo'lsa va komponentlar soni o'zgarib tursa, JavaScript grid-template-areas satrini tuzishga yordam berishi mumkin.
Qo'llash holati: Vidjetlarni qayta tartiblash mumkin bo'lgan boshqaruv paneli.
JavaScript quyidagilarni bajarishi mumkin:
- Vidjetlar tartibini mahalliy xotiradan o'qish.
- Ushbu tartibga asoslanib dinamik ravishda
grid-template-areassatrini yaratish. - Ushbu satrni boshqaruv paneli konteyneriga qo'llash.
Kuchli bo'lsa-da, bundan ehtiyotkorlik bilan foydalanish kerak, chunki murakkab dinamik generatsiya ba'zan kamroq qo'llab-quvvatlanadigan CSS ga olib kelishi mumkin. Iloji boricha statik CSS yechimlariga ustunlik bering.
Keng Tarqalgan Xatolar va Ulardan Qochish Yo'llari
Grid Hududlari taqdim etadigan ravshanlikka qaramay, ba'zi keng tarqalgan xatolar yuz berishi mumkin:
- Nomlarning Mos Kelmasligi:
grid-template-areasda ishlatilgan har bir nomning to'g'ridan-to'g'ri bola elementida mos keladigangrid-areaxususiyati borligiga ishonch hosil qiling va aksincha. Bu yerda imlo xatolari tez-tez uchraydigan aybdorlardir. - Balanssiz Hudud Ta'riflari:
grid-template-areasning har bir qatorida belgilangan yacheykalar soni bir xil bo'lishi kerak. Agar bir qatorda 3 ta ustun belgilangan bo'lsa, o'sha ta'rifdagi barcha keyingi qatorlar ham kontseptual jihatdan 3 ta ustunga ega bo'lishi kerak. Agar bir nomni bir qatorda ikki marta ishlatsangiz, o'sha nom ikki yacheykani egallaydi. - Manba Tartibini E'tiborsiz Qoldirish: Esda tutingki, HTML manbasidagi grid elementlaringizning tartibi ularning steklash kontekstiga va qulaylik vositalari bilan qanday ishlashiga ta'sir qiladi. Grid Hududlari vizual qayta tartiblashga imkon bersa-da, HTML-dagi semantik tartibni hisobga oling.
- Qat'iy Birliklarga Haddan Tashqari Tayanish: Ba'zan ma'lum ustun kengliklari kerak bo'lsa-da, moslashuvchan va adaptiv maketlar uchun, ayniqsa turli matn uzunliklariga ega bo'lishi mumkin bo'lgan global kontent bilan ishlaganda,
frbirliklari kabi moslashuvchan birliklarni afzal ko'ring. display: grid;ni Unutish: Grid Hududi xususiyatlari kuchga kirishi uchun konteynergadisplay: grid;yokidisplay: inline-grid;qo'llanilishi kerak.
Xulosa: Zamonaviy Veb uchun Semantik Maketlarni Qabul Qilish
CSS Grid Hududlari shunchaki maket vositasi emas; ular semantik, o'qilishi oson va qo'llab-quvvatlanadigan front-end kodiga yo'naltirilgan paradigma o'zgarishidir. Nomlangan grid hududlarini qabul qilish orqali siz o'zingizga va jamoangizga quyidagi imkoniyatlarni berasiz:
- Murakkab maketlarni ajoyib osonlik va ravshanlik bilan qurish.
- Turli qurilmalar va ekran o'lchamlarida nafis moslashadigan yuqori darajada moslashuvchan dizaynlarni yaratish.
- Loyihalaringizning qo'llab-quvvatlanuvchanligi va kengaytiriluvchanligini oshirish.
- Veb-sahifalaringizning semantik yaxlitligini yaxshilash.
- Turli til va maket talablariga ega bo'lgan global auditoriyaga yaxshiroq xizmat ko'rsatish.
Veb rivojlanishda davom etar ekan, tuzilgan, moslashuvchan va semantik jihatdan boy maketlar yaratish qobiliyati a'lo darajadagi front-end dasturlashning asosiy toshi bo'lib qoladi. CSS Grid Hududlari nafis va kuchli yechimni taqdim etadi, bu ularni har qanday zamonaviy veb-dasturchining asboblar to'plamining ajralmas qismiga aylantiradi.
Bugunoq grid-template-areas bilan tajriba qilishni boshlang va veb-maketlaringizda yangi darajadagi nazorat va semantik ravshanlikni kashf eting. Kelajakdagi o'zingiz, hamkasblaringiz va global foydalanuvchilaringiz sizga minnatdorchilik bildirishadi.