CSS nima? Brauzer qanday qo'llaydi, Cascade nima
Muammodan boshlaylik
HTML kursida sahifa yasadingiz: sarlavhalar, paragraflar, ro'yxatlar, jadval. Brauzerda ochasiz — oq fon, qora Times New Roman shrift, hamma narsa chap tomonga yopishgan. Ishlaydi, lekin 1995-yilgi saytga o'xshaydi.
Sarlavhani ko'k qilish, tugmani yumaloq qilish, menyuni gorizontal qilish, telefonda chiroyli ko'rinish — bularning hech biri HTML ning ishi emas. HTML nima ko'rsatilishini aytadi. Qanday ko'rinishini esa CSS aytadi.
CSS — ko'rinish tili
CSS (Cascading Style Sheets — kaskadli uslublar jadvali) — HTML elementlarining ko'rinishini boshqaradigan til: rang, shrift, o'lcham, joylashuv, animatsiya.
HTML → tuzilma va ma'no (bu — sarlavha, bu — tugma)
CSS → ko'rinish (sarlavha — ko'k, 32px; tugma — yumaloq)
JS → xatti-harakat (tugma bosilganda — oyna ochilsin)
Uchalasi alohida — va bu muhim: bitta HTML ga boshqa CSS ulab, saytning dizaynini butunlay o'zgartirish mumkin, kodga tegmasdan.
Birinchi qoida
h1 {
color: navy;
font-size: 32px;
}
CSS qoidasi ikki qismdan iborat:
h1 { ← selektor: QAYSI elementlarga
color: navy; ← e'lon: xususiyat: qiymat;
font-size: 32px; ← yana bir e'lon
}
- Selektor — qaysi elementlarga qo'llanishi (2–4-darslar)
- Xususiyat (property) — nimani o'zgartirish:
color,font-size,margin... - Qiymat (value) — qanday:
navy,32px,auto... - Har bir e'lon oxirida nuqtali vergul
;
[!WARNING] Eng ko'p uchraydigan xato — nuqtali vergulni yoki yopuvchi
}ni unutish. Brauzer xato bermaydi — shunchaki shu qoidani (yoki undan keyingi qismini) jimgina e'tiborsiz qoldiradi. Stil ishlamasa, birinchi navbatda shuni tekshiring.
CSS ni HTML ga ulashning 3 usuli
1. Tashqi fayl — to'g'ri usul
<!-- index.html -->
<head>
<link rel="stylesheet" href="style.css">
</head>
/* style.css */
body {
font-family: system-ui, sans-serif;
background: #f8fafc;
}
Barcha sahifalar bitta faylni ishlatadi — dizayn bir joyda o'zgaradi. Brauzer faylni keshlaydi: ikkinchi sahifada qayta yuklamaydi.
2. <style> tegi — sahifa ichida
<head>
<style>
h1 { color: navy; }
</style>
</head>
Faqat shu sahifaga ta'sir qiladi. Kichik sinovlar yoki bitta sahifali loyihalar uchun.
3. style atributi — inline
<h1 style="color: navy; font-size: 32px;">Salom</h1>
Faqat shu bitta elementga. Qayta ishlatib bo'lmaydi, HTML ni ifloslaydi va eng yuqori ustunlikka ega (5-dars) — keyin uni boshqa joydan o'zgartirish qiyin.
| Usul | Qachon |
|---|---|
Tashqi .css fayl |
Deyarli har doim |
<style> |
Sinov, bitta sahifa, e-mail shablonlari |
style="" |
JavaScript dinamik qiymat qo'yganda; qo'lda — kamdan-kam |
Brauzer CSS ni qanday qo'llaydi
Brauzer sahifani shunday quradi:
1. HTML ni o'qiydi → DOM daraxti (elementlar)
2. CSS ni o'qiydi → CSSOM (qoidalar)
3. Har bir elementga → qaysi qoidalar mos keladi?
qoidalarni moslaydi ziddiyat bo'lsa — qaysi biri yutadi?
4. Joylashuvni hisoblaydi → layout (o'lcham va o'rinlar)
5. Chizadi → paint
3-qadam — CSS ning eng muhim va eng ko'p chalkashlik keltiradigan qismi. Bitta elementga bir nechta qoida mos kelishi mumkin:
p { color: black; }
.izoh { color: gray; }
#muhim { color: red; }
<p class="izoh" id="muhim">Bu qanday rangda?</p>
Uchala qoida ham shu paragrafga tegishli. Qaysi biri yutadi? Javob — Cascade.
Cascade — "kaskad"
CSS nomidagi "C" — Cascade. Bu ziddiyatlarni hal qilish qoidalari. Brauzer tartib bilan tekshiradi:
1. Muhimlik va manba
!importantbilan belgilangan e'lonlar (ehtiyot bo'ling — 5-dars)- Sizning CSS ingiz brauzerning standart stillaridan ustun
2. Specificity (aniqlik) — qaysi selektor aniqroq:
#muhim (id) > .izoh (class) > p (teg)
Yuqoridagi misolda — qizil, chunki id eng aniq. Batafsil — 5-dars.
3. Tartib — aniqlik teng bo'lsa, keyinroq yozilgani yutadi:
p { color: black; }
p { color: green; } /* ← bu yutadi */
Meros (inheritance)
Ba'zi xususiyatlar ota elementdan bolalarga meros o'tadi:
body {
color: #1e293b;
font-family: system-ui, sans-serif;
}
Endi sahifadagi barcha matn shu rang va shriftda — har bir p, li, span uchun alohida yozish shart emas.
| Meros o'tadi | Meros o'tmaydi |
|---|---|
color, font-*, line-height, text-align |
margin, padding, border, width, background |
Mantiq oddiy: matn uslubi bolalarga o'tishi tabiiy; har bir bolaga ota ning chegarasi va foni chizilsa — tartibsizlik bo'lardi.
Brauzerning standart stillari
CSS yozmasangiz ham sahifada ba'zi stillar bor: h1 katta va qalin, havolalar ko'k va tagiga chizilgan, body atrofida 8px bo'shliq. Bular — brauzerning user agent stylesheet i. Har bir brauzerda biroz farq qiladi.
Shuning uchun ko'p loyihalar CSS faylining boshida kichik "reset" qiladi:
*,
*::before,
*::after {
box-sizing: border-box; /* 8-dars */
}
body {
margin: 0;
}
img {
max-width: 100%;
display: block;
}
DevTools — CSS ni ko'rish
Brauzerda istalgan elementga o'ng tugma → Inspect (yoki F12). Styles panelida:
- Elementga qaysi qoidalar qo'llanganini
- Qaysilari chizib tashlangan (boshqa qoida yutgan) ekanini
- Qiymatlarni jonli o'zgartirishni
ko'rasiz. CSS o'rganishning eng tez usuli — DevTools da tajriba qilish. "Nega stilim ishlamayapti?" savolining javobi deyarli har doim shu yerda: chizilgan qatorni ko'rasiz va uni qaysi qoida yutganini bilasiz.
Nima uchun shunday?
Nima uchun CSS "kaskad" qilib yaratilgan — har bir elementga bitta aniq stil bersak bo'lmaydimi?
Chunki stil bir nechta manbadan keladi va ularni birlashtirish kerak: brauzer standarti, sayt dizayni, alohida sahifa sozlamasi, foydalanuvchining o'zi (masalan, ko'rish qobiliyati past odam shriftni kattalashtiradi). Kaskad bularning hammasini aniq qoidalar bilan birlashtiradi: umumiy qoida (p — qora) va xususiy istisno (.izoh — kulrang) yonma-yon yashaydi. Bu sizga kam kod yozish imkonini beradi: avval umumiy uslub, keyin faqat farqlar. Kaskadni tushunmasangiz, CSS "tasodifiy" tuyuladi; tushunsangiz — har bir natija mantiqiy bo'ladi.
Xulosa
Eslab qoling:
- HTML — tuzilma, CSS — ko'rinish, JS — xatti-harakat
- Qoida:
selektor { xususiyat: qiymat; }— nuqtali vergulni unutmang - Ulash: tashqi fayl (
<link rel="stylesheet">) — asosiy usul - Ziddiyat: muhimlik → specificity (id > class > teg) → tartib (keyingisi yutadi)
- Meros:
color,fontbolalarga o'tadi;margin,border— yo'q - Brauzerning standart stillari bor — reset bilan tekislanadi
- DevTools (F12 → Styles) — CSS ni tushunishning eng yaxshi vositasi
Keyingi dars
2-dars: Selektorlar — element, class, id, universal