CSS nima va uni qanday usullarda ulash mumkin?

JuniorCSS #css #basics

Savol

CSS nima, u nima uchun kerak va uni HTML'ga qanday usullarda ulash mumkin?

Qisqa javob

CSS (Cascading Style Sheets) — HTML-hujjatning tashqi ko'rinishini tasvirlash tili: ranglar, bo'shliqlar, shriftlar, elementlarning joylashuvi. Stillarni uchta usulda ulash mumkin: style inline-atributi orqali, hujjat ichidagi <style> tegi orqali yoki <link> orqali tashqi fayl sifatida.

Batafsil javob

CSS ko'rinishni hujjat strukturasidan ajratadi: HTML mazmun va semantikani tasvirlaydi, CSS esa — bu mazmun qanday ko'rinishini. Bir xil HTML'ni butunlay boshqacha ko'rinishga keltirish mumkin, shunchaki boshqa stillar to'plamini ulash orqali.

Ulashning uchta usuli:

  • Inline stillar (style="color: red") — tegning atributida to'g'ridan-to'g'ri belgilanadi. Kaskadda maksimal og'irlikka ega, ammo ularni qayta ishlatib bo'lmaydi va qo'llab-quvvatlash qiyin. Faqat JS orqali nuqtali dinamik o'zgartirishlar uchun mos keladi.
  • Ichki stillar (<head> ichidagi <style>...</style>) — faqat bitta sahifa doirasida ishlaydi. Kichik demolar yoki birinchi renderni tezlashtirish uchun joylanadigan kritik CSS uchun qulay.
  • Tashqi fayl (<link rel="stylesheet" href="styles.css">) — stillar alohida .css-faylga chiqarilgan. Real loyihalardagi asosiy usul: brauzer faylni keshlaydi, stillar barcha sahifalarda qayta ishlatiladi, qo'llab-quvvatlash va modullarga bo'lish osonroq.

CSS qoidasining asosiy sintaksisi:

selektor {
  xususiyat: qiymat;
  xususiyat: qiymat;
}

Selektor qoida qaysi elementlarga qo'llanilishini ko'rsatadi, jingalak qavslar ichidagi tana esa nuqta-vergul bilan ajratilgan "xususiyat: qiymat" juftliklari to'plamidir. Selektorlar teg bo'yicha (p), klass bo'yicha (.card), id bo'yicha (#header), atribut bo'yicha ([type="text"]), shuningdek ularning kombinatsiyasi bo'yicha bo'ladi.

Misol

/* tashqi fayl styles.css, <link> orqali ulanadi */

/* teg bo'yicha */
p {
  margin: 0 0 16px;
}

/* klass bo'yicha */
.card {
  padding: 16px;
  border-radius: 8px;
  background-color: #f5f5f5;
}

/* id bo'yicha */
#main-header {
  font-size: 24px;
}

/* atribut bo'yicha */
input[type="email"] {
  border: 1px solid #ccc;
}
<!-- inline -->
<p style="color: red;">Matn</p>

<!-- ichki stillar -->
<head>
  <style>
    p { color: blue; }
  </style>
</head>

<!-- tashqi fayl -->
<head>
  <link rel="stylesheet" href="styles.css">
</head>

Qo'shimcha savollar

  • Agar turli manbalardan olingan stillar bir-biriga zid bo'lsa, brauzer ularni qanday tartibda qo'llaydi?
  • Nega prodakshinda inline stillar yomon amaliyot hisoblanadi?
  • Kritik CSS nima va nega u <head>ga inline qilinadi?