CSS nima?
CSS (Cascading Style Sheets โ "kaskadli uslublar jadvali") โ veb-sahifaning tashqi ko'rinishini boshqaradigan til. Agar HTML sahifaning "skeleti" (matn, tugmalar, rasmlar) bo'lsa, CSS uning "kiyimi" โ ranglar, shriftlar, joylashuv, masofalar va animatsiyalar. Ushbu darsda CSS nima ekanligini, u qanday yozilishini va HTML bilan qanday bog'lanishini noldan o'rganamiz.
.html fayl yaratib, brauzerda ochib sinab ko'ring. Barcha kod bloklari statik โ ya'ni namuna sifatida keltirilgan.CSS nega kerak?
HTML'ning o'zi bilan ham sahifa yaratish mumkin, lekin u juda oddiy va bir xil ko'rinadi: qora matn, oq fon, ko'k havolalar. HTML'ning vazifasi โ mazmun va tuzilma (bu โ sarlavha, bu โ paragraf, bu โ ro'yxat). CSS'ning vazifasi esa โ ko'rinish (sarlavha qanday rangda, qanchalik katta, qayerda joylashgan).
Bu ikkisini ajratib turish juda muhim tamoyil. Mazmun (HTML) va bezak (CSS) alohida bo'lgani uchun, siz bir xil HTML'ni turlicha bezashingiz yoki barcha sahifalar uchun bitta CSS faylini ishlatishingiz mumkin. Bu kodni tartibli va oson boshqariladigan qiladi.
- HTML โ nima ko'rsatilishi (mazmun va tuzilma);
- CSS โ qanday ko'rsatilishi (rang, shrift, joylashuv);
- JavaScript โ qanday harakat qilishi (bosishga javob, o'zgarishlar).
CSS sintaksisi: qoida (rule)
CSS eng kichik birligi โ qoida (rule). Har bir qoida ikki qismdan iborat: selektor (nimani bezamoqchisiz) va e'lonlar bloki (qanday bezamoqchisiz). E'lonlar bloki jingalak qavslar { } ichida yoziladi.
selektor {
xossa: qiymat;
xossa: qiymat;
}
Har bir e'lon (declaration) ikki qismdan iborat: xossa (property) โ nimani o'zgartirmoqchisiz (masalan, rang), va qiymat (value) โ qanday qilib (masalan, qizil). Ular orasida ikki nuqta :, oxirida esa nuqtali vergul ; qo'yiladi.
p {
color: red;
font-size: 18px;
text-align: center;
}
Yuqoridagi qoida shunday o'qiladi: "Barcha <p> (paragraf) elementlarining matn rangi qizil, shrift o'lchami 18 piksel va matni markazda tekislangan bo'lsin".
;) qo'yish shart emas, lekin har doim qo'yish yaxshi odat. Chunki keyinchalik yangi e'lon qo'shsangiz, unutib qolish xatosi kelib chiqmaydi.CSS'ni HTML'ga ulashning 3 usuli
CSS'ni HTML sahifaga bog'lashning uchta usuli bor. Har birining o'z o'rni bor, lekin amalda deyarli har doim uchinchi usul (external) ishlatiladi.
1. Inline (element ichida)
CSS to'g'ridan-to'g'ri HTML elementining style atributi ichida yoziladi. Bu faqat o'sha bitta elementga ta'sir qiladi.
<p style="color: blue; font-size: 20px;">Ko'k matn</p>
2. Internal (sahifa ichida)
CSS HTML faylning <head> qismidagi <style> tegi ichida yoziladi. Bu butun sahifaga ta'sir qiladi, lekin faqat shu bitta faylda ishlaydi.
<!DOCTYPE html>
<html>
<head>
<style>
p {
color: green;
font-size: 18px;
}
</style>
</head>
<body>
<p>Yashil matn</p>
</body>
</html>
3. External (tashqi fayl) โ eng yaxshi usul
CSS alohida .css faylida saqlanadi va HTML'ga <link> tegi orqali ulanadi. Bir CSS faylni cheksiz ko'p HTML sahifaga ulash mumkin.
<link rel="stylesheet" href="style.css">
Bu qator HTML faylning <head> qismiga yoziladi. href โ CSS faylining manzili (yo'li). Endi style.css faylining o'zida odatiy CSS qoidalarini yozasiz:
/* style.css fayli */
body {
background-color: #f0f0f0;
font-family: Arial, sans-serif;
}
p {
color: #333333;
}
/* ... */ ko'rinishida yoziladi. U bir qatorli ham, ko'p qatorli ham bo'lishi mumkin. Izohlar brauzer tomonidan e'tiborga olinmaydi, faqat dasturchi uchun eslatma sifatida xizmat qiladi.Asosiy selektorlar
Selektor โ CSS qoidasi qaysi elementlarga qo'llanishini belgilaydi. Uch xil asosiy selektor bor, ularni yaxshi o'zlashtirish CSS'ning yarmini bilish demakdir.
Element (teg) selektori
Element nomi bo'yicha tanlaydi. Masalan, p selektori sahifadagi barcha <p> elementlariga ta'sir qiladi.
h1 {
color: navy;
}
a {
text-decoration: none;
}
Class (sinf) selektori โ nuqta (.)
Class selektori nuqta bilan boshlanadi (.nom) va HTML'da class atributi orqali qo'llaniladi. Bitta class'ni ko'p elementga berish mumkin โ bu eng ko'p ishlatiladigan selektor.
/* CSS */
.tugma {
background-color: dodgerblue;
color: white;
padding: 10px;
}
<!-- HTML -->
<button class="tugma">Yubor</button>
<a class="tugma">Havola</a>
<div class="karta katta ko'k">. Bu holda elementga uchta class ham qo'llaniladi.Id (identifikator) selektori โ panjara (#)
Id selektori panjara belgisi bilan boshlanadi (#nom) va HTML'da id atributi orqali qo'llaniladi. Id sahifada faqat bitta bo'lishi kerak โ u noyob (unique) identifikator.
/* CSS */
#asosiy-sarlavha {
font-size: 40px;
color: black;
}
<h1 id="asosiy-sarlavha">Salom dunyo</h1>
Selektorlarni kombinatsiyalash
Selektorlarni birlashtirib, aniqroq nishonlash mumkin. Bir nechta muhim kombinatsiyalar:
- Guruh โ
h1, h2, h3 { }โ vergul bilan ajratilgan, uch element ham bir xil uslub oladi; - Avlod (descendant) โ
div p { }โ bo'sh joy bilan,divichidagi barchap'larni tanlaydi; - Bevosita farzand โ
ul > li { }โ faqatulning bevositalifarzandlarini; - Element + class โ
p.katta { }โ faqatkattaclass'iga egap'larni.
/* .menyu ichidagi barcha havolalar */
.menyu a {
color: white;
}
/* h1, h2 va h3 birdaniga */
h1, h2, h3 {
font-family: Georgia, serif;
}
Spetsifiklik (specificity) โ qaysi qoida g'olib?
Ba'zan bitta elementga bir nechta qoida bir xil xossani (masalan, color) turlicha belgilaydi. Bunday to'qnashuvda brauzer qaysi qoidani qo'llashni spetsifiklik qoidasiga ko'ra hal qiladi. Sodda tartibda "kuchdan kuchsizga":
- Inline uslub (
style="...") โ eng kuchli; - Id selektori (
#nom) โ juda kuchli; - Class selektori (
.nom) โ o'rtacha; - Element selektori (
p) โ eng kuchsiz.
Ya'ni #nom qoidasi .nom qoidasidan ustun keladi, u esa p qoidasidan ustun. Agar spetsifiklik teng bo'lsa, u holda CSS faylida keyinroq yozilgan qoida g'olib chiqadi ("kaskad" so'zining ma'nosi ham shu).
p { color: black; } /* kuchsiz */
.matn { color: blue; } /* kuchliroq */
#salom { color: red; } /* eng kuchli */
Agar bir <p id="salom" class="matn"> elementiga uchala qoida ham to'g'ri kelsa, matn qizil (red) bo'ladi โ chunki id selektori eng kuchli.
!important degan maxsus belgi bor: color: red !important;. U barcha spetsifiklik qoidalarini chetlab o'tib, majburan g'olib chiqadi. Undan iloji boricha foydalanmang โ u kodni chalkashtiradi va keyinchalik uslubni o'zgartirishni juda qiyinlashtiradi. U โ oxirgi chora.Xulosa
- CSS โ veb-sahifaning tashqi ko'rinishini (rang, shrift, joylashuv) boshqaradigan til;
- Sintaksis:
selektor { xossa: qiymat; }; - Ulash usullari: inline (yomon), internal (
<style>), external (<link>โ eng yaxshi); - Asosiy selektorlar: element (
p), class (.nom), id (#nom); - Selektorlarni guruhlash va kombinatsiyalash mumkin;
- To'qnashuvda spetsifiklik hal qiladi: inline > id > class > element;
- Amalda deyarli har doim external CSS va class selektorlarini ishlating.