O'zbek

Brauzer qo'llab-quvvatlashi, ekran o'lchami va boshqalarga asoslangan shartli uslublarni qo'llash imkonini beruvchi kuchli CSS @when qoidasini o'rganing. Amaliy misollar bilan tanishing.

CSS @when qoidasi: Shartli uslublarni qo'llashni o'zlashtirish

CSS dunyosi doimiy ravishda rivojlanib, ishlab chiquvchilarga veb-sahifalarga uslub berishning yanada kuchli va moslashuvchan usullarini taklif qilmoqda. Ommalashib borayotgan shunday xususiyatlardan biri bu @when qoidasi bo'lib, u CSS Shartli qoidalar moduli 1-darajasi sifatida ham tanilgan. Bu qoida muayyan shartlar bajarilganda CSS uslublarini shartli ravishda qo'llash imkonini beradi. Bu moslashuvchan dizayn, xususiyatlarni aniqlash va yanada mustahkam va moslashuvchan uslublar jadvallarini yaratish uchun kuchli vositadir.

CSS @when qoidasi nima?

@when qoidasi CSS-dagi shartli at-qoida bo'lib, u faqat ma'lum shartlar to'g'ri bo'lganda qo'llaniladigan uslublarni belgilash imkonini beradi. Buni CSS uchun if operatori deb o'ylang. Asosan ekran xususiyatlariga (ekran o'lchami, yo'nalishi va h.k.) qaratilgan media so'rovlaridan farqli o'laroq, @when shartli uslublarni boshqarishning umumiyroq va kengaytiriladigan usulini taqdim etadi. U @supports va @media kabi mavjud shartli at-qoidalarni kengaytiradi.

@when dan foydalanishning asosiy afzalliklari

@when qoidasining sintaksisi

@when qoidasining asosiy sintaksisi quyidagicha:

@when <shart> {
  /* Shart to'g'ri bo'lganda qo'llaniladigan CSS qoidalari */
}

<shart> to'g'ri (true) yoki yolg'on (false) deb baholanadigan har qanday haqiqiy mantiqiy ifoda bo'lishi mumkin. Bu ifoda ko'pincha quyidagilarni o'z ichiga oladi:

@when ning amaliy misollari

@when qoidasining kuchi va ko'p qirraliligini ko'rsatish uchun ba'zi amaliy misollarni ko'rib chiqamiz.

1. @when va Media so'rovlari yordamida moslashuvchan dizayn

@when uchun eng keng tarqalgan foydalanish holati bu moslashuvchan dizayn bo'lib, unda siz ekran o'lchamiga qarab uslublarni o'zgartirasiz. Garchi media so'rovlari buni o'z-o'zidan bajara olsa-da, @when yanada tuzilgan va o'qilishi oson yondashuvni taqdim etadi, ayniqsa murakkab shartlar bilan ishlaganda.

@when (min-width: 768px) and (max-width: 1023px) {
  body {
    font-size: 18px;
    line-height: 1.6;
  }
  .container {
    width: 720px;
    margin: 0 auto;
  }
}

Ushbu misolda, @when bloki ichidagi uslublar faqat ekran kengligi 768px va 1023px (odatdagi planshet o'lchami) oralig'ida bo'lganda qo'llaniladi. Bu ma'lum ekran diapazonlari uchun uslublarni aniq va ixcham tarzda belgilash imkonini beradi.

Xalqarolashtirish bo'yicha eslatma: Moslashuvchan dizayn global auditoriya uchun juda muhim. Turli mintaqalardagi har xil ekran o'lchamlarini hisobga oling. Masalan, ba'zi mamlakatlarda mobil qurilmalardan foydalanish yuqori, bu esa "mobile-first" dizaynini yanada muhimroq qiladi.

2. @when va @supports yordamida xususiyatlarni aniqlash

@when ni @supports bilan birlashtirib, faqat ma'lum bir CSS xususiyati brauzer tomonidan qo'llab-quvvatlanganda uslublarni qo'llash mumkin. Bu sizga veb-saytingizni progressiv ravishda takomillashtirish, zamonaviy brauzerli foydalanuvchilar uchun yaxshiroq tajriba taqdim etish va shu bilan birga eski brauzerlar bilan moslikni saqlab qolish imkonini beradi.

@when supports(display: grid) {
  .container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    grid-gap: 20px;
  }
}

@when not supports(display: grid) {
  .container {
    /* Gridni qo'llab-quvvatlamaydigan brauzerlar uchun zaxira uslublari */
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .item {
    width: calc(50% - 10px); /* Eski brauzerlar uchun kenglikni sozlash */
  }
}

Bu yerda biz brauzerning CSS Grid Layout-ni qo'llab-quvvatlashini tekshirish uchun @supports dan foydalanamiz. Agar qo'llab-quvvatlasa, .container ga grid asosidagi uslublarni qo'llaymiz. Agar qo'llab-quvvatlamasa, eski brauzerlarda o'xshash tartibga erishishni ta'minlash uchun flexbox yordamida zaxira uslublarini taqdim etamiz.

Global maxsus imkoniyatlar bo'yicha eslatma: Xususiyatlarni aniqlash maxsus imkoniyatlar uchun muhimdir. Eski brauzerlar yangi ARIA atributlarini yoki semantik HTML5 elementlarini qo'llab-quvvatlamasligi mumkin. Kontentning maxsus imkoniyatlarga ega bo'lishini ta'minlash uchun tegishli zaxiralarni taqdim eting.

3. Media so'rovlari va xususiyat so'rovlarini birlashtirish

@when ning haqiqiy kuchi uning media so'rovlari va xususiyat so'rovlarini birlashtirib, yanada murakkab va nozik shartli uslublar qoidalarini yaratish qobiliyatidan kelib chiqadi.

@when (min-width: 768px) and supports(backdrop-filter: blur(10px)) {
  .modal {
    background-color: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(10px);
  }
}

Ushbu misolda, .modal elementi faqat ekran kengligi kamida 768px bo'lganda va brauzer backdrop-filter xususiyatini qo'llab-quvvatlaganda xiralashtirilgan fonga ega bo'ladi. Bu zamonaviy brauzerlarda vizual jozibali effektlar yaratishga imkon beradi va eski brauzerlarda yuzaga kelishi mumkin bo'lgan ishlash muammolari yoki renderdagi xatoliklarni oldini oladi.

4. Maxsus xususiyatlar (CSS o'zgaruvchilari) asosida uslub berish

@when shuningdek, dinamik va holatga asoslangan uslublarni yaratish uchun CSS maxsus xususiyatlari (CSS o'zgaruvchilari deb ham ataladi) bilan birgalikda ishlatilishi mumkin. Siz JavaScript yordamida maxsus xususiyat qiymatini yangilashingiz va keyin @when yordamida o'sha qiymatga asoslanib turli xil uslublarni qo'llashingiz mumkin.

Birinchidan, maxsus xususiyatni belgilang:

:root {
  --theme-color: #007bff; /* Standart mavzu rangi */
  --is-dark-mode: false;
}

Keyin, maxsus xususiyat qiymatiga asoslanib uslublarni qo'llash uchun @when dan foydalaning:

@when var(--is-dark-mode) = true {
  body {
    background-color: #333;
    color: #fff;
  }
  a {
    color: #ccc;
  }
}

Nihoyat, --is-dark-mode maxsus xususiyatining qiymatini o'zgartirish uchun JavaScript-dan foydalaning:

document.getElementById('darkModeToggle').addEventListener('click', function() {
  document.documentElement.style.setProperty('--is-dark-mode', this.checked);
});

Bu foydalanuvchilarga yorug' va qorong'i mavzular o'rtasida almashish imkonini beradi, bunda CSS maxsus xususiyat qiymatiga qarab dinamik ravishda yangilanadi. E'tibor bering, `@when` ichida CSS o'zgaruvchilarini to'g'ridan-to'g'ri taqqoslash barcha brauzerlarda universal qo'llab-quvvatlanmasligi mumkin. Buning o'rniga, nolga teng bo'lmagan qiymatni tekshiradigan media so'rovi bilan aylanma yo'ldan foydalanish kerak bo'lishi mumkin:

@when ( --is-dark-mode > 0 ) { ... }

Biroq, buning to'g'ri ishlashi uchun maxsus xususiyat raqamli qiymatga ega ekanligiga ishonch hosil qiling.

Maxsus imkoniyatlar bo'yicha eslatma: Alternativ mavzularni (masalan, qorong'i rejim) taqdim etish maxsus imkoniyatlar uchun juda muhimdir. Ko'rish qobiliyati zaif foydalanuvchilar yuqori kontrastli mavzulardan foyda olishlari mumkin. Mavzu almashtirgichingiz klaviatura va ekran o'quvchilari orqali mavjud ekanligiga ishonch hosil qiling.

5. Ma'lumotlar atributlari asosida uslub berish

Siz shuningdek, @when ni ma'lumotlar atributlari bilan birgalikda elementlarga ularning ma'lumot qiymatlariga qarab uslub berish uchun ishlatishingiz mumkin. Bu foydalanuvchi o'zaro ta'siri yoki ma'lumotlar yangilanishlariga qarab elementlarning ko'rinishi o'zgaradigan dinamik interfeyslarni yaratish uchun foydali bo'lishi mumkin.

Masalan, aytaylik, sizda vazifalar ro'yxati bor va har bir vazifaning uning holatini ko'rsatuvchi data-status atributi bor (masalan, "todo", "in-progress", "completed"). Siz @when yordamida har bir vazifaga uning holatiga qarab har xil uslub berishingiz mumkin.

[data-status="todo"] {
  /* Bajariladigan vazifalar uchun standart uslublar */
  color: #333;
}

@when attribute(data-status string equals "in-progress") {
  [data-status="in-progress"] {
    color: orange;
    font-style: italic;
  }
}

@when attribute(data-status string equals "completed") {
  [data-status="completed"] {
    color: green;
    text-decoration: line-through;
  }
}

Eslatma: attribute() sinov shartini qo'llab-quvvatlash hozirda barcha brauzerlarda cheklangan yoki to'liq joriy etilmagan bo'lishi mumkin. Har doim sinchkovlik bilan tekshiring.

Brauzer mosligi va polifillar

2024-yil oxiriga kelib, @when qoidasini brauzerda qo'llab-quvvatlash hali ham rivojlanmoqda. Ko'pgina zamonaviy brauzerlar asosiy funksionallikni qo'llab-quvvatlasa-da, ba'zi eski brauzerlar qo'llab-quvvatlamasligi mumkin. Shuning uchun moslik jadvallarini tekshirish va kerak bo'lganda tegishli zaxira yoki polifillardan foydalanish juda muhim.

@when va unga bog'liq xususiyatlarning joriy brauzer qo'llab-quvvatlash holatini tekshirish uchun har doim Can I use... kabi manbalarga murojaat qiling.

@when dan foydalanishning eng yaxshi amaliyotlari

Xulosa

@when qoidasi CSS asboblar to'plamiga kuchli qo'shimcha bo'lib, ishlab chiquvchilarga shartli ravishda uslublarni qo'llashning yanada moslashuvchan va ifodali usulini taklif etadi. Uni media so'rovlari, xususiyat so'rovlari va CSS maxsus xususiyatlari bilan birlashtirib, siz yanada mustahkam, moslashuvchan va saqlanuvchan uslublar jadvallarini yaratishingiz mumkin. Brauzerni qo'llab-quvvatlash hali ham rivojlanayotgan bo'lsa-da, @when zamonaviy veb-ishlab chiqish jarayoniga o'rganishga va kiritishga arziydigan xususiyatdir.

Veb rivojlanishda davom etar ekan, @when kabi xususiyatlarni o'zlashtirish butun dunyo bo'ylab foydalanuvchilar uchun qiziqarli, maxsus imkoniyatlarga ega va samarali tajribalar yaratish uchun muhim bo'ladi. Shartli uslublarning kuchini qabul qiling va CSS ishlab chiqishingizda yangi imkoniyatlarni oching.

CSS @when qoidasi: Shartli uslublarni qo'llashni o'zlashtirish | MLOG