05 β Display va box model utility'lari¶
β¬ οΈ Oldingi: 04 β Spacing, sizing va o'lcham tizimi Β· π README Β· Keyingi: 06 β Flexbox β‘οΈ
Bu bobda: har bir element bir quti ekanini eslab, Tailwind'da uning display turini (
block,inline,flex,grid,hiddenβ¦) bitta klass bilan qanday almashtirishni,box-bordernega aqlli standart ekanini, chegara kengligi va tomonlarini (border,border-2,border-x,border-tβ¦), v4'dagi muhim "chegara rangi endicurrentColor" nuancesini, bolalar orasiga masofa qo'shuvchispace-x-*/space-y-*va ular orasiga ingichka chiziq tortuvchidivide-x-*/divide-y-*ni o'rganasiz. Oxirida shularni birlashtirib toza statistika ro'yxatini quramiz.
05.1 Avval kichik eslatma: har element β bir quti¶
Tailwind'ga kirishdan oldin bitta tushunchani yodga olaylik, chunki bu bobning hammasi shunga tayanadi: brauzer sahifadagi har bir elementni to'rtburchak quti deb ko'radi. Har bir quti ichdan tashqariga qarab to'rt qatlamdan iborat β content (mazmun), padding (ichki masofa), border (chegara) va margin (tashqi masofa).
Agar bu qatlamlar va box-sizing qanday ishlashini hali ko'rmagan bo'lsangiz, HTML & CSS kitobining box model bobini ko'rib chiqing β Tailwind bu tushunchalarning o'rnini bosmaydi, faqat ularni qisqa klasslar tilida qayta ifodalaydi.
Bu bobda biz qutining ikki tomonini ko'ramiz:
- Element qanday turdagi quti β bu uning
displayxususiyati. Block quti butun qatorni egallaydi, inline quti matn ichida oqadi. - Quti chegarasi qanchalik qalin va qaysi tomonlarda β bu
borderutility'lari.
Keling, birinchisidan boshlaymiz.
05.2 Display: element qanday "oqadi"¶
CSS'dagi display xususiyati elementning sahifada qanday joylashishini belgilaydi. Tailwind har bir keng tarqalgan qiymat uchun bitta qisqa utility beradi β qo'shimcha sintaksis yo'q, klass nomi to'g'ridan-to'g'ri CSS qiymatiga teng.
| Utility | CSS | Ma'nosi |
|---|---|---|
block |
display: block |
Butun qatorni egallaydi, ustma-ust taxlanadi. w-*/h-* oladi. |
inline |
display: inline |
Matn kabi yonma-yon oqadi. w-*/h-* e'tiborsiz qoldiriladi. |
inline-block |
display: inline-block |
Yonma-yon, lekin o'lcham va vertikal padding oladi. |
flex |
display: flex |
Bolalarni bir o'qda saf qiladi (06-bob). |
inline-flex |
display: inline-flex |
Flex konteyner, lekin o'zi inline kabi oqadi. |
grid |
display: grid |
Ustun/qatorli to'r yaratadi (07-bob). |
inline-grid |
display: inline-grid |
Grid konteyner, o'zi inline oqadi. |
hidden |
display: none |
Elementni butunlay olib tashlaydi β joy ham egallamaydi. |
contents |
display: contents |
Quti yo'qoladi, bolalar to'g'ridan-to'g'ri ota oqimiga chiqadi. |
table, table-cell, table-row |
display: table* |
Eski jadval modeli; bugun kamdan-kam kerak. |
Eng ko'p ishlatadiganlaringiz β block, inline-block, flex, grid va hidden. Qolganlari (contents, table-*) maxsus holatlar uchun; ularni shunchaki "bor ekan" deb bilib qo'ying.
<a href="#" class="block">Butun qatorni egallaydigan havola</a>
<span class="inline-block w-24 h-8">O'lcham oladigan inline element</span>
<div class="flex">β¦flex konteynerβ¦</div>
<div class="grid">β¦grid konteynerβ¦</div>
π‘ Nega
inline-blockfoydali? Oddiyinlineelement (masalan<span>yoki<a>)w-*,h-*va yuqori/pastki padding'ni inkor qiladi β matn qanday oqsa, shunday turadi. Agar havolaga aniq o'lcham yoki ustki padding bermoqchi bo'lsangiz,inline-blockaynan shu muammoni hal qiladi: u matn kabi yonma-yon turadi, lekin block kabi o'lchovga bo'ysunadi.
hidden β display:none, ko'rinmaslikning eng "qattiq" turi¶
hidden klassi display: none beradi. Bu element nafaqat ko'rinmaydi, balki layoutda joy ham egallamaydi β uning o'rnida bo'shliq qolmaydi, qo'shni elementlar yopiladi.
Buni invisible (visibility: hidden) bilan adashtirmang:
| Klass | CSS | Element ko'rinadimi? | Joy egallaydimi? |
|---|---|---|---|
hidden |
display: none |
Yo'q | Yo'q |
invisible |
visibility: hidden |
Yo'q | Ha (bo'sh joy qoladi) |
<!-- Bu element butunlay yo'qoladi, o'rni ham yopiladi -->
<div class="hidden">Ko'rinmaydi va joy ham egallamaydi</div>
<!-- Bu element ko'rinmaydi, lekin o'rni saqlanib qoladi -->
<div class="invisible">Ko'rinmas, lekin joyi turadi</div>
π Qoida: agar elementni butunlay olib tashlamoqchi bo'lsangiz β
hidden. Agar uni vaqtincha berkitib, lekin "skeleton" yoki tekislash uchun o'rni saqlansin desangiz βinvisible.
Responsive ko'rsatish/yashirish (qisqacha tatib ko'rish)¶
display utility'larining eng kuchli tomoni β ular variantlar bilan birlashganda ochiladi. Eng tipik naqsh: elementni mobil ekranda yashirib, kattaroq ekranda ko'rsatish.
<!-- Mobilda yashiringan, md (β768px) va kattaroqda ko'rinadi -->
<nav class="hidden md:block">Desktop menyu</nav>
<!-- Aksincha: faqat mobilda ko'rinadigan tugma -->
<button class="block md:hidden">β° Menyu</button>
Bu yerda md:block "o'rta ekranda display: block bo'l" degani; hidden esa undan kichik hamma ekranda kuchda qoladi (Tailwind mobile-first). Variantlar zanjiri va breakpoint'lar β alohida katta mavzu; ularni to'liq 09-bob (responsive dizayn)da ochamiz. Hozircha shuni bilib qo'ying: har bir display utility'siga sm:, md:, lg: prefiksini qo'shib, uni ekran o'lchamiga bog'lash mumkin.
05.3 box-sizing: nega border-box aqlli standart¶
Endi qutining o'lchami qanday hisoblanishiga o'tamiz. Bu yerda CSS tarixidagi mashhur bir og'riq bor.
Sof CSS standarti bo'yicha width: 300px faqat content qatlamini o'lchaydi. Ya'ni siz width: 300px va padding: 20px, border: 2px bersangiz, elementning ekrandagi haqiqiy eni 300 + 20Β·2 + 2Β·2 = 344px chiqadi. Bu juda chalkash: "300 dedim-ku, nega 344 bo'ldi?"
Yechim β box-sizing: border-box: bunda width content emas, butun ko'rinadigan qutini (content + padding + border) o'lchaydi. width: 300px desangiz, ekranda aynan 300px β padding va border shu 300 ichiga sig'adi.
Yaxshi xabar: Tailwind buni siz uchun avvaldan hal qilgan. Tailwind'ning Preflight (asosiy reset) qatlami butun sahifaga box-sizing: border-box o'rnatadi. Demak siz hech narsa yozmasangiz ham, barcha elementlar allaqachon border-box rejimida.
Shuning uchun mos utility'lar ham bor, garchi ularga kamdan-kam tegasiz:
| Utility | CSS | Qachon |
|---|---|---|
box-border |
box-sizing: border-box |
Standart β odatda yozmaysiz, allaqachon shunday. |
box-content |
box-sizing: content-box |
Faqat eski uslubdagi hisob-kitob kerak bo'lganda. |
π‘ Aksariyat o'quvchi
box-contentga umuman tegmaydi. Uni faqat shu uchun ko'rsatyapmiz: kunlardan bir kun begona koddabox-contentni uchratsangiz, "demak bu element o'lchami eski qoida bilan, ya'ni padding/borderwidthustiga qo'shilib hisoblanadi" deb tushuning.box-sizinghaqida chuqurroq β HTML & CSS box model bobida.
05.4 Chegara: kenglik va tomonlar (border, border-2, border-x β¦)¶
Chegara (border) ham qutining bir qatlami, shuning uchun uni box model bobida ko'ramiz. Bu yerda biz faqat kenglik va qaysi tomonga e'tibor beramiz β rang, uslub (dashed/dotted) va burchak yumaloqligi (rounded-*) batafsil 13-bobda.
Butun chegara kengligi:
| Utility | Kenglik |
|---|---|
border |
1px (standart) |
border-0 |
0 |
border-2 |
2px |
border-4 |
4px |
border-8 |
8px |
Faqat ayrim tomonlar (eng / o'q bo'yicha):
| Utility | Qaysi tomon |
|---|---|
border-t |
yuqori (top) |
border-r |
o'ng (right) |
border-b |
past (bottom) |
border-l |
chap (left) |
border-x |
chap va o'ng |
border-y |
yuqori va past |
Tomon va kenglikni birlashtirish mumkin: border-t-2 (yuqorida 2px), border-x-4 (yon tomonlarda 4px).
<div class="border border-gray-200">Har tomondan 1px chegara</div>
<div class="border-2 border-indigo-500">Har tomondan 2px</div>
<div class="border-b border-gray-300">Faqat pastki chiziq (ajratuvchi)</div>
<div class="border-t-4 border-x border-y-0">Murakkab: ust 4px, yon 1px, past/ust 0</div>
β οΈ v4'dagi MUHIM o'zgarish: chegara rangi endi currentColor¶
Bu bobdagi eng muhim "ayyorlik". Tailwind v3'da border qo'shsangiz, chegara avtomatik och kulrang (gray-200) bo'lardi. Tailwind v4'da bu o'zgardi: agar siz rang bermasangiz, chegara rangi currentColor β ya'ni matn rangiga teng bo'ladi.
<!-- v3'da: och kulrang chegara. v4'da: matn rangidagi (odatda qora) chegara! -->
<div class="border p-4">Mana bu chegara v4'da KUTILMAGANDA qora chiqadi</div>
<!-- To'g'ri yo'l: v4'da rangni doim o'zingiz bering -->
<div class="border border-gray-200 p-4">Mana bu β kutilgan och kulrang chegara</div>
β οΈ Eng ko'p uchraydigan v4 xatosi shu. Eski darslar yoki v3 odatiga ko'ra
borderyozasiz, lekin chegara siz kutgan nozik kulrang emas, qora (yoki matn rangidagi) qalin chiziq bo'lib chiqadi. Yechim: v4'daborderhar doim rang utility'si bilan birga yuradi βborder border-gray-200,border-2 border-indigo-500va hokazo. Buni odat qiling.π Nega Tailwind buni o'zgartirdi? v3'dagi yashirin
gray-200standarti β "sehrli" qiymat edi: tema rangiga bog'lanmagan, kutilmagan.currentColorga o'tish β bu CSS'ning o'z standartiga qaytish (CSS'daborder-colorstandarti aynancurrentColor). Shuning uchun v4 sof platforma bilan mosroq. Buning evaziga β bizdan rangni aniq berishni talab qiladi.
05.5 Padding va margin β box model kontekstida (qisqa eslatma)¶
padding va margin scale'ini (04-bobda batafsil ko'rib chiqdik) bu yerda takrorlamaymiz, lekin quti nuqtai nazaridan ikki jumla:
p-*(padding) qutini ichdan kengaytiradi β mazmun bilan chegara orasiga bo'shliq qo'shadi va elementning fon rangini oladi.border-boxtufayli u elementning umumiy o'lchamini oshirmaydi, content joyini qisadi.m-*(margin) qutini tashqaridan boshqa qutilardan uzoqlashtiradi. Margin har doim shaffof β fon olmaydi.
<div class="bg-indigo-50 p-6 m-4 border border-indigo-200">
Ichida 1.5rem padding (fon shu yergacha cho'ziladi),
tashqarida 1rem margin (qo'shnilardan ajraladi).
</div>
Bu sodda holatlar uchun yetarli. Lekin bir nechta elementni bir tekisda ajratish kerak bo'lsa β masalan ro'yxatdagi har bir qatorni β har biriga qo'lda margin yozish zerikarli. Aynan shu yerda space-* va divide-* yordamga keladi.
05.6 space-x-* / space-y-* β bolalar ORASIGA masofa¶
space-y-4 kabi klass ota-elementga qo'yiladi va uning bolalari orasiga vertikal masofa qo'shadi. Asosiy g'oya: birinchi boladan tashqari har bir bolaga margin-top beriladi.
<div class="space-y-4">
<div>Birinchi bola β margin yo'q</div>
<div>Ikkinchi bola β yuqorisida 1rem margin</div>
<div>Uchinchi bola β yuqorisida 1rem margin</div>
</div>
Tailwind buni shunga o'xshash selektor bilan amalga oshiradi (soddalashtirilgan ko'rinishi):
.space-y-4 > :not(:last-child) {
margin-bottom: 1rem; /* aslida v4 :not(:last-child) variantida margin qo'yadi */
}
Muhimi shu: masofa faqat elementlar orasida paydo bo'ladi, to'plamning yuqori va past qirralarida emas. Bu xuddi "qatorlar orasiga ip qo'ygandek" β chetlarda ortiqcha bo'shliq qolmaydi.
space-x-* esa yonma-yon (gorizontal) elementlar orasiga ishlaydi β ko'pincha flex qator bilan:
space-*ning ikki tuzog'i¶
space-* qulay, lekin uning ikkita mashhur tuzog'i bor β ularni bilib qo'ying:
-
flex-row-reverse/flex-wrapbilan chalkashlik.space-x-*"qaysi bola oxirgi" degan tartibga tayanadi. Agar sizflex-row-reverse(tartibni teskari) yokiflex-wrap(ikkinchi qatorga o'tish) ishlatsangiz, margin "noto'g'ri" tomonda yoki o'ralgan qatorda kutilmagan joyda paydo bo'lishi mumkin. -
Inline elementlar bilan ishonchsiz.
space-x-*margin'ga tayanadi, inline elementlarda esa gorizontal margin har doim ham kutilganidek ishlamaydi.
<!-- β οΈ Bunda masofa o'ralgan qatorlarda chalkash chiqishi mumkin -->
<div class="flex flex-wrap space-x-4">β¦ko'p elementβ¦</div>
π‘ Zamonaviy maslahat: flex va grid ichida
space-*o'rnigagap-*ishlating.gap-*to'g'ridan-to'g'ri CSS Gap xususiyatiga tayanadi β u barcha bolalar orasiga (jumladan o'ralgan qatorlarda ham) bir tekis bo'shliq beradi, hech qaysi bolaga margin qo'shmaydi vareverse/wrapbilan to'liq mos ishlaydi.space-*ni esa oddiy block taxlamalar (flex/grid bo'lmagan, masalan oddiy<div>lar to'plami) uchun saqlang.
<!-- β
Flex/grid ichida toza yo'l: gap -->
<div class="flex gap-4">β¦</div>
<div class="grid grid-cols-3 gap-6">β¦</div>
gap-* ning to'liq qo'llanishini flexbox bobida ko'ramiz.
05.7 divide-x-* / divide-y-* β bolalar ORASIGA chiziq¶
space-* bolalar orasiga bo'shliq qo'ysa, divide-* ular orasiga ko'rinadigan ingichka chiziq (chegara) qo'yadi. Bu ro'yxat, jadvalsimon qatorlar yoki sozlamalar paneli uchun ideal β har bir qatorga qo'lda border-b yozmasdan, butun to'plamga bitta klass yetadi.
divide-y har bir bolaning yuqorisiga (birinchisidan tashqari) chegara qo'yadi; divide-x esa chap tomoniga. Va β xuddi border kabi β v4'da rangni o'zingiz berishingiz kerak (divide-gray-200), aks holda chiziq currentColor (matn rangi) bo'ladi.
<ul class="divide-y divide-gray-200">
<li class="py-3">Birinchi qator</li>
<li class="py-3">Ikkinchi qator β ustida ingichka chiziq</li>
<li class="py-3">Uchinchi qator β ustida ingichka chiziq</li>
</ul>
Chiziq qalinligini ham boshqarish mumkin: divide-y-2, divide-x-4. Standart divide-y β 1px.
π
divide-*hamspace-*kabi:not(:last-child)uslubidagi selektorga tayanadi va xuddi shu tuzoqlarga ega (flex-wrap,reversebilan ehtiyot bo'ling). Lekin oddiy vertikal ro'yxat uchun u eng toza yechim.
05.8 Hammasini birlashtiramiz: chegarali statistika ro'yxati¶
Endi bu bobdagi utility'larni bitta amaliy komponentda birlashtiramiz. Quramiz: atrofida chegarasi, ichida padding'i va qatorlari orasida ingichka ajratuvchi chiziqlari bo'lgan statistika kartasi.
<div class="max-w-sm border border-gray-200 rounded-lg divide-y divide-gray-200">
<div class="flex justify-between px-5 py-4">
<span class="text-gray-600">Foydalanuvchilar</span>
<span class="font-semibold text-gray-900">1 248</span>
</div>
<div class="flex justify-between px-5 py-4">
<span class="text-gray-600">Faol obunalar</span>
<span class="font-semibold text-gray-900">312</span>
</div>
<div class="flex justify-between px-5 py-4">
<span class="text-gray-600">Bugungi daromad</span>
<span class="font-semibold text-gray-900">$4 900</span>
</div>
<div class="flex justify-between px-5 py-4">
<span class="text-gray-600">Qaytarilgan</span>
<span class="font-semibold text-gray-900">7</span>
</div>
</div>
Bu yerda har bir utility o'z vazifasini bajaryapti:
border border-gray-200β butun karta atrofida nozik kulrang chegara (rang berildi, chunki v4!).rounded-lgβ burchaklar yumaloq (13-bob).divide-y divide-gray-200β faqat qatorlar orasida ingichka chiziq; eng yuqori va eng pastki qatorda qo'sh chiziq paydo bo'lmaydi.flex justify-betweenβ har qatorda yorliq chapda, qiymat o'ngda.px-5 py-4β har qatorga ichki bo'shliq.
Diqqat qiling: chegara atrofda (border), ajratuvchilar orasida (divide). Agar buning o'rniga har bir qatorga border-b yozsangiz, oxirgi qatorda ortiqcha chiziq qolardi yoki chetlar bilan ikki marta to'qnashardi. divide-* ayni shu muammoni hal qiladi.
π‘ Agar chiziq emas, faqat bo'shliq kerak bo'lsa,
divide-yo'rnigaspace-y-2yozing β qatorlar orasi ochiladi, lekin chiziq chizilmaydi. Ikkalasi bir maqsadning ikki ko'rinishi: biri ko'zga ko'rinadigan ajratuvchi, biri ko'rinmas bo'shliq.
05.9 Overflow β hozircha bir og'iz¶
Quti haqida gapirganda overflow (mazmun qutiga sig'masa nima bo'ladi) tabiiy savol. Tailwind'da overflow-hidden, overflow-auto, overflow-scroll, overflow-x-auto kabi utility'lar bor.
Lekin overflow asosan joylashuv (layout) va aylantirish (scroll) bilan bog'liq, shuning uchun uni to'liq 08-bob (positioning, z-index va overflow)da ochamiz. Hozircha shuni bilib qo'ying: agar mazmun qutidan oshib chiqsa, overflow-hidden ortiqcha qismini kesadi, overflow-auto esa kerak bo'lsa scrollbar chiqaradi.
<!-- Uzun matnni qutiga "qamab", ortig'ini scroll bilan ko'rsatish -->
<div class="h-32 overflow-auto border border-gray-200 p-4">
β¦juda uzun mazmunβ¦
</div>
05.10 Tez-tez uchraydigan xatolar¶
β οΈ 1. v4'da chegara rangini unutish.
borderyozdingiz, lekin chiziq siz kutgan nozik kulrang emas, qora chiqdi. Sababi β v4'da rangcurrentColor. Yechim: har doimborder border-gray-200kabi rangni qo'shing. Budivide-*uchun ham amal qiladi (divide-gray-200).β οΈ 2.
space-xniflex-wrapbilan ishlatish. O'ralgan qatorlarda margin kutilmagan joyda paydo bo'ladi. Yechim: flex/grid ichidagap-*ishlating β u wrap bilan to'liq mos.β οΈ 3.
gapo'rniga margin "to'plash". Flex/grid bolalariga bittalabmr-4/mb-4yozish β eski va xato yo'l (oxirgi elementda ortiqcha margin qoladi, wrap buziladi). Yechim: flex/grid bo'lsagap, oddiy block taxlama bo'lsaspace-*.β οΈ 4.
inlineelementgaw-*/h-*berib, "ishlamadi" deyish. Sofinlineelement o'lchamni inkor qiladi. Yechim:inline-blockyokiblockishlating.β οΈ 5.
hiddenvainvisibleni adashtirish.hiddenjoyni ham yo'q qiladi,invisiblejoyni saqlaydi. Layout "sakrab ketmasin" desangiz βinvisible; butunlay olib tashlash kerak bo'lsa βhidden.
Mashqlar¶
1-mashq. Quyidagi havola sof inline element. Unga balandlik (h-12) va ustki padding (pt-3) berib, ular ishlashi uchun nima qilish kerak? Klassni to'g'rilang.
Yechim
Sof `inline` element `h-*` va vertikal padding'ni inkor qiladi. `inline-block` (yoki `block`/`flex`) qo'shish kerak: Amalda tugma havolalarda ko'pincha `inline-flex items-center` ishlatiladi β matnni vertikal markazga qo'yadi. Lekin bu mashq doirasida `inline-block` yetarli: endi balandlik va padding kuchga kiradi.2-mashq. Mobil ekranda ko'rinadigan "β° Menyu" tugmasi va faqat md (β768px) va kattaroq ekranda ko'rinadigan gorizontal navigatsiya yozing. Ikkalasi bir vaqtda ko'rinmasin.
Yechim
Mantiq: `block md:hidden` β kichik ekranda `block`, `md`dan boshlab `hidden`. `hidden md:flex` β aksincha: kichik ekranda `hidden`, `md`dan boshlab `flex`. Tailwind mobile-first, shuning uchun prefiks*siz* klass kichik ekran uchun "asos" bo'ladi.3-mashq. Quyidagi karta border ishlatgan, lekin chegara kulrang emas, qora chiqyapti. Nega? To'g'rilang.
Yechim
Tailwind **v4**'da chegara rangi standart `currentColor` (matn rangi) β matn qora bo'lgani uchun chegara ham qora chiqdi (v3'da bu `gray-200` edi). Rangni aniq berish kerak: Endi chegara kutilgan nozik och kulrang bo'ladi. Eslatma: bu v4'dagi eng ko'p uchraydigan "ko'rinmas/qora chegara" xatosi.4-mashq. Uchta <div> dan iborat oddiy vertikal taxlama bor. Ular orasida 1rem bo'shliq kerak, lekin chetlarda (yuqori/past) ortiqcha bo'shliq bo'lmasin. Bu konteyner flex ham, grid ham emas. Qaysi utility'ni ishlatasiz?
Yechim
Oddiy block taxlamasi (flex/grid emas) uchun `space-y-*` aynan shu maqsad uchun: u faqat bolalar **orasiga** margin qo'yadi, chetlarga tegmaydi. `space-y-4` = orasida 1rem. Birinchi bolada yuqori margin yo'q, oxirgi bolada past margin yo'q β chetlar toza. (Agar konteyner flex/grid bo'lsa, bu yerda `gap-4` afzalroq bo'lardi.)5-mashq. Quyidagi ro'yxat qatorlari orasiga ko'rinadigan ingichka kulrang chiziq qo'shing (oxirgi qatordan keyin chiziq bo'lmasin). Atrofida ham nozik chegara va rounded-lg bo'lsin.
<ul>
<li class="px-4 py-3">Profilni tahrirlash</li>
<li class="px-4 py-3">Xavfsizlik</li>
<li class="px-4 py-3">Bildirishnomalar</li>
</ul>
Yechim
- `border border-gray-200` β atrofida chegara (v4'da rang shart!). - `rounded-lg` β burchaklar yumaloq. - `divide-y divide-gray-200` β qatorlar **orasida** chiziq; oxirgi qatordan keyin avtomatik chiziq qo'yilmaydi (`:not(:last-child)` mantiqi). Rangni unutmang, aks holda chiziq `currentColor` bo'ladi.6-mashq (qiyinroq). Bitta "narx kartasi" yarating: atrofida border-2 border-indigo-500, ustki qismi (sarlavha) bilan pastki qismi (xususiyatlar ro'yxati) o'rtasida ajratuvchi chiziq, ro'yxat ichida esa har bir xususiyat orasida bo'shliq (chiziq emas). Qaysi qayerda divide, qayerda space kerakligini o'ylab ko'ring.
Yechim
Kalit g'oya: karta darajasida **divide** (ko'rinadigan chiziq sarlavha bilan tana orasida), tana ichida esa **space** (chiziqsiz bo'shliq xususiyatlar orasida).<div class="max-w-xs border-2 border-indigo-500 rounded-xl divide-y divide-indigo-100">
<!-- Yuqori bo'lim: sarlavha va narx -->
<div class="px-6 py-5">
<h3 class="text-lg font-semibold text-gray-900">Pro reja</h3>
<p class="text-3xl font-bold text-indigo-600">$29<span class="text-base font-normal text-gray-500">/oy</span></p>
</div>
<!-- Pastki bo'lim: xususiyatlar (orasida bo'shliq, chiziq yo'q) -->
<ul class="px-6 py-5 space-y-2 text-gray-700">
<li>Cheksiz loyihalar</li>
<li>Prioritet qo'llab-quvvatlash</li>
<li>10GB saqlash</li>
</ul>
</div>
β¬ οΈ Oldingi: 04 β Spacing, sizing va o'lcham tizimi Β· π README Β· Keyingi: 06 β Flexbox β‘οΈ