Turli brauzerlar va platformalarda moslashuvchan va mustahkam veb-dizayn uchun ilg'or imkoniyatlarni ochuvchi CSS Xususiyat So'rovlari 2-darajasini o'rganing. Amaliy misollar va eng yaxshi amaliyotlarni bilib oling.
CSS Xususiyat So'rovlari 2-daraja: Zamonaviy Veb-ishlab chiqish uchun Kengaytirilgan Imkoniyatlarni Aniqlash
Veb-ishlab chiqish rivojlanishda davom etar ekan, turli xil brauzerlar va qurilmalar bo'ylab moslikni ta'minlash tobora muhim ahamiyat kasb etmoqda. CSS Xususiyat So'rovlari, ayniqsa 2-darajada kiritilgan yutuqlar bilan, ma'lum CSS xususiyatlari uchun brauzer qo'llab-quvvatlashini aniqlash va shunga mos ravishda uslublarni qo'llash uchun kuchli mexanizmni taqdim etadi. Bu ishlab chiquvchilarga progressiv takomillashtirishni amalga oshirishga imkon beradi, mos keluvchi brauzerlarga ega foydalanuvchilarga zamonaviy tajribani taqdim etadi va eski yoki kamroq qobiliyatli tizimlarga ega bo'lganlar uchun silliq zaxira variantini ta'minlaydi.
CSS Xususiyat So'rovlari nima?
@supports
qoidasi yordamida aniqlangan CSS Xususiyat So'rovlari brauzer ma'lum bir CSS xususiyati va qiymatini qo'llab-quvvatlashiga qarab CSS uslublarini shartli ravishda qo'llash imkonini beradi. Bu sizga eski brauzerlarda maket yoki funksionallikni buzishdan qo'rqmasdan yangi CSS xususiyatlaridan foydalanish imkonini beradi. Brauzerni aniqlashga (odatda tavsiya etilmaydi) tayanmasdan, Xususiyat So'rovlari imkoniyatlarni aniqlash uchun ishonchliroq va qo'llab-quvvatlanadigan yondashuvni taklif qiladi.
Asosiy Sintaksis
Xususiyat So'rovining asosiy sintaksisi quyidagicha:
@supports (property: value) {
/* Agar brauzer xususiyat:qiymatni qo'llab-quvvatlasa, qo'llaniladigan CSS qoidalari */
}
Masalan, brauzer display: grid
xususiyatini qo'llab-quvvatlashini tekshirish uchun siz quyidagidan foydalanasiz:
@supports (display: grid) {
/* Grid maketi uchun CSS qoidalari */
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
}
Agar brauzer display: grid
-ni qo'llab-quvvatlasa, @supports
bloki ichidagi CSS qoidalari qo'llaniladi; aks holda, ular e'tiborga olinmaydi.
CSS Xususiyat So'rovlari 2-darajadagi Asosiy Yaxshilanishlar
CSS Xususiyat So'rovlari 2-darajasi dastlabki spetsifikatsiyaga nisbatan bir necha muhim yaxshilanishlarni kiritadi, imkoniyatlarni aniqlashda ko'proq moslashuvchanlik va nazoratni taklif etadi. Eng e'tiborga loyiq yaxshilanishlar quyidagilarni o'z ichiga oladi:
- Murakkab so'rovlar: 2-daraja sizga
and
,or
vanot
kabi mantiqiy operatorlar yordamida bir nechta xususiyat so'rovlarini birlashtirish imkonini beradi. - CSS qiymatlarida
supports()
funksiyasi: Endi sizsupports()
funksiyasidan to'g'ridan-to'g'ri CSS xususiyat qiymatlari ichida foydalanishingiz mumkin.
Mantiqiy Operatorlar bilan Murakkab So'rovlar
Mantiqiy operatorlar yordamida bir nechta xususiyat so'rovlarini birlashtirish qobiliyati shartli uslublar uchun imkoniyatlarni sezilarli darajada kengaytiradi. Bu sizga ma'lum bir xususiyatlar kombinatsiyasini qo'llab-quvvatlaydigan brauzerlarni nishonga olish imkonini beradi.
and
Operatoridan Foydalanish
and
operatori CSS qoidalarini qo'llash uchun barcha belgilangan shartlarning bajarilishini talab qiladi. Masalan, brauzer ham display: flex
, ham position: sticky
-ni qo'llab-quvvatlashini tekshirish uchun siz quyidagidan foydalanasiz:
@supports (display: flex) and (position: sticky) {
/* Agar flexbox va yopishqoq joylashuv ikkalasi ham qo'llab-quvvatlansa, qo'llaniladigan CSS qoidalari */
.element {
display: flex;
position: sticky;
top: 0;
}
}
Bu uslublar faqat flexbox maketi va yopishqoq joylashuvni boshqara oladigan brauzerlarga qo'llanilishini ta'minlaydi, bu esa izchil va oldindan aytib bo'ladigan tajribani taqdim etadi.
or
Operatoridan Foydalanish
or
operatori CSS qoidalarini qo'llash uchun belgilangan shartlardan kamida bittasining bajarilishini talab qiladi. Bu o'xshash effektga erishadigan turli xususiyatlarni qo'llab-quvvatlashga asoslangan muqobil uslublarni taqdim etish uchun foydalidir. Masalan, qaysi biri qo'llab-quvvatlanishiga qarab display: grid
yoki display: flex
-dan foydalanishni xohlashingiz mumkin:
@supports (display: grid) or (display: flex) {
/* Agar grid yoki flexbox qo'llab-quvvatlansa, qo'llaniladigan CSS qoidalari */
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
@supports not (display: grid) {
.container {
display: flex;
flex-wrap: wrap;
}
.container > * {
width: calc(33.333% - 10px);
margin-bottom: 10px;
}
}
}
Ushbu misolda, agar brauzer display: grid
-ni qo'llab-quvvatlasa, grid maketi ishlatiladi. Agar u gridni qo'llab-quvvatlamasa, lekin flexboxni qo'llab-quvvatlasa, flexbox maketi ishlatiladi. Bu eski brauzerlarda ham mantiqiy maketni ta'minlaydigan zaxira mexanizmini taqdim etadi.
not
Operatoridan Foydalanish
not
operatori belgilangan shartni inkor qiladi. Bu ma'lum bir xususiyatni qo'llab-quvvatlamaydigan brauzerlarni nishonga olish uchun foydalidir. Masalan, faqat backdrop-filter
xususiyatini qo'llab-quvvatlamaydigan brauzerlarga uslublarni qo'llash uchun siz quyidagidan foydalanasiz:
@supports not (backdrop-filter: blur(10px)) {
/* Agar backdrop-filter qo'llab-quvvatlanmasa, qo'llaniladigan CSS qoidalari */
.modal {
background-color: rgba(0, 0, 0, 0.5);
}
}
Bu sizga orqa fon filtri effektini qo'llab-quvvatlamaydigan brauzerlarda modal oyna uchun zaxira fon rangini taqdim etish imkonini beradi, bu esa o'qilishi oson va vizual aniqlikni ta'minlaydi.
CSS qiymatlarida supports()
Funksiyasi
2-darajadagi muhim qo'shimcha - bu supports()
funksiyasini to'g'ridan-to'g'ri CSS xususiyat qiymatlari ichida ishlatish imkoniyati. Bu shartli uslublar ustidan yanada nozikroq nazorat qilish imkonini beradi, bu sizga xususiyatni qo'llab-quvvatlashga asoslangan holda xususiyat qiymatlarini sozlash imkonini beradi.
CSS qiymatlarida supports()
funksiyasidan foydalanish sintaksisi quyidagicha:
property: supports(condition, value1, value2);
Agar shart
bajarilsa, qiymat1
qo'llaniladi; aks holda, qiymat2
qo'llaniladi.
Masalan, faqat brauzer qo'llab-quvvatlasagina filter
xususiyatini blur
effekti bilan ishlatish uchun siz quyidagidan foydalanishingiz mumkin:
.element {
filter: supports(blur(5px), blur(5px), none);
}
Agar brauzer blur()
filtri funksiyasini qo'llab-quvvatlasa, filter
xususiyati blur(5px)
ga o'rnatiladi; aks holda, u none
ga o'rnatiladi.
Misol: Rang Funksiyalari uchun supports()
-dan Foydalanish
Ranglarni aralashtirish uchun nisbatan yangi CSS xususiyati bo'lgan color-mix()
funksiyasidan foydalanishni xohlagan stsenariyni ko'rib chiqing. Eski brauzerlar bilan moslikni ta'minlash uchun siz supports()
funksiyasidan zaxira rangini taqdim etish uchun foydalanishingiz mumkin:
.button {
background-color: supports(color-mix(in srgb, blue 40%, red), color-mix(in srgb, blue 40%, red), purple);
}
Ushbu misolda, agar brauzer color-mix()
-ni qo'llab-quvvatlasa, fon rangi ko'k va qizil ranglarning aralashmasi bo'ladi. Agar qo'llab-quvvatlamasa, fon rangi binafsha rangga o'rnatiladi, bu esa vizual jihatdan maqbul muqobilni taqdim etadi.
Amaliy Misollar va Qo'llash Holatlari
CSS Xususiyat So'rovlari 2-darajasi zamonaviy veb-ishlab chiqishda keng ko'lamli amaliy qo'llanmalarni taklif etadi. Mana uning imkoniyatlaridan qanday foydalanish mumkinligini ko'rsatadigan bir nechta misollar:
Maxsus Xususiyatlar (CSS O'zgaruvchilari) uchun Progressiv Yaxshilash
Maxsus xususiyatlar (CSS o'zgaruvchilari) uslublarni boshqarish va dinamik mavzular yaratish uchun kuchli vositadir. Biroq, eski brauzerlar ularni qo'llab-quvvatlamasligi mumkin. Siz Xususiyat So'rovlaridan maxsus xususiyatlar uchun zaxira qiymatlarini taqdim etish uchun foydalanishingiz mumkin:
:root {
--primary-color: #007bff;
}
@supports (var(--primary-color)) {
/* Agar qo'llab-quvvatlansa, maxsus xususiyatdan foydalaning */
.button {
background-color: var(--primary-color);
color: white;
}
} @supports not (var(--primary-color)) {
/* Agar maxsus xususiyatlar qo'llab-quvvatlanmasa, zaxira rangini taqdim eting */
.button {
background-color: #007bff; /* Zaxira rangi */
color: white;
}
}
Bu, brauzer maxsus xususiyatlarni qo'llab-quvvatlamasa ham, tugma har doim asosiy rangga ega bo'lishini ta'minlaydi.
font-variant
bilan Tipografiyani Yaxshilash
font-variant
xususiyati kichik bosh harflar, ligaturalar va tarixiy shakllar kabi ilg'or tipografik xususiyatlarni taklif etadi. Biroq, ushbu xususiyatlarni qo'llab-quvvatlash brauzerlar bo'ylab farq qilishi mumkin. Siz Xususiyat So'rovlaridan brauzer qo'llab-quvvatlashiga qarab ushbu xususiyatlarni tanlab yoqish uchun foydalanishingiz mumkin:
.text {
font-family: 'YourCustomFont', sans-serif;
}
@supports (font-variant-caps: small-caps) {
.text {
font-variant-caps: small-caps;
}
}
Bu kichik bosh harflarni faqat font-variant-caps
xususiyatini qo'llab-quvvatlaydigan brauzerlarda yoqadi va eski brauzerlarda maketni buzmasdan tipografiyani yaxshilaydi.
Ilg'or Maket Texnikalarini Amalga Oshirish
Grid va Flexbox kabi zamonaviy CSS maket texnikalari murakkab va moslashuvchan maketlarni yaratish uchun kuchli vositalarni taklif etadi. Biroq, eski brauzerlar ushbu xususiyatlarni to'liq qo'llab-quvvatlamasligi mumkin. Siz Xususiyat So'rovlaridan eski brauzerlar uchun muqobil maketlarni taqdim etish uchun foydalanishingiz mumkin:
.container {
/* Eski brauzerlar uchun asosiy maket */
float: left;
width: 33.333%;
}
@supports (display: grid) {
/* Zamonaviy brauzerlar uchun Grid maketidan foydalaning */
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
.container > * {
float: none;
width: auto;
}
}
Bu eski brauzerlarda maketning funksional va vizual jihatdan maqbul bo'lishini ta'minlaydi, zamonaviy brauzerlarda esa yanada ilg'or va moslashuvchan maketni taqdim etadi.
Tashqi Resurslarni Shartli Yuklash
Xususiyat So'rovlari asosan shartli uslublarni qo'llash uchun ishlatilsa-da, siz ularni JavaScript bilan birgalikda uslublar jadvallari yoki skriptlar kabi tashqi resurslarni shartli ravishda yuklash uchun ham ishlatishingiz mumkin. Bu ma'lum brauzerlar uchun polifillarni yoki maxsus CSS fayllarini yuklash uchun foydali bo'lishi mumkin.
if (CSS.supports('display', 'grid')) {
// Grid maketi uslublar jadvalini yuklash
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'grid-layout.css';
document.head.appendChild(link);
} else {
// Zaxira uslublar jadvalini yuklash
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'fallback-layout.css';
document.head.appendChild(link);
}
Ushbu JavaScript kodi brauzer display: grid
-ni qo'llab-quvvatlashini tekshiradi. Agar shunday bo'lsa, u grid-layout.css
uslublar jadvalini yuklaydi; aks holda, u fallback-layout.css
uslublar jadvalini yuklaydi.
CSS Xususiyat So'rovlaridan Foydalanish bo'yicha Eng Yaxshi Amaliyotlar
CSS Xususiyat So'rovlaridan samarali foydalanish uchun quyidagi eng yaxshi amaliyotlarni ko'rib chiqing:
- Mustahkam Baza bilan Boshlang: Ishni eski brauzerlarda yaxshi ishlaydigan asosiy maket va uslublarni yaratishdan boshlang. Bu barcha foydalanuvchilarning brauzer imkoniyatlaridan qat'i nazar, funksional tajribaga ega bo'lishini ta'minlaydi.
- Progressiv Yaxshilash uchun Xususiyat So'rovlaridan Foydalaning: Ularni qo'llab-quvvatlaydigan brauzerlarda ilg'or uslublar va xususiyatlarni tanlab qo'llash uchun Xususiyat So'rovlaridan foydalaning. Bu sizga eski brauzerlarda maketni buzmasdan foydalanuvchi tajribasini yaxshilash imkonini beradi.
- Puxta Sinovdan O'tkazing: Xususiyat So'rovlari kutilganidek ishlayotganiga ishonch hosil qilish uchun veb-saytingiz yoki ilovangizni turli xil brauzerlar va qurilmalarda sinab ko'ring. Qo'llanilgan uslublarni tekshirish va brauzer qo'llab-quvvatlashiga qarab to'g'ri uslublar qo'llanilayotganini tasdiqlash uchun brauzer ishlab chiquvchi vositalaridan foydalaning.
- So'rovlarni Sodda va Qo'llab-quvvatlanadigan holda Saqlang: Tushunish va saqlash qiyin bo'lgan haddan tashqari murakkab Xususiyat So'rovlarini yaratishdan saqlaning. Aniq va qisqa sintaksisdan foydalaning va ularning maqsadini tushuntirish uchun so'rovlaringizni hujjatlashtiring.
- Ishlash Samaradorligini Hisobga Oling: Xususiyat So'rovlari odatda samarali bo'lsa-da, siz foydalanadigan so'rovlar soni va har bir so'rov ichidagi uslublarning murakkabligiga e'tibor bering. Xususiyat So'rovlaridan haddan tashqari ko'p foydalanish, ayniqsa eski qurilmalarda, ishlash samaradorligiga potentsial ta'sir qilishi mumkin.
- Zarur bo'lganda Polifillardan Foydalaning: Keng qo'llab-quvvatlanmaydigan ba'zi xususiyatlar uchun eski brauzerlarda moslikni ta'minlash uchun polifillardan foydalanishni ko'rib chiqing. Polifillar - bu etishmayotgan funksionallikni amalga oshiradigan JavaScript kutubxonalari bo'lib, ular sizga zamonaviy xususiyatlardan hatto ularni tabiiy ravishda qo'llab-quvvatlamaydigan brauzerlarda ham foydalanish imkonini beradi.
Global Mulohazalar va Maxsus Imkoniyatlar
CSS Xususiyat So'rovlarini global kontekstda ishlatganda, maxsus imkoniyatlar va madaniy farqlarni hisobga olish muhimdir. Veb-saytingiz yoki ilovangiz qaysi brauzerdan foydalanishidan qat'i nazar, nogironligi bo'lgan foydalanuvchilar uchun qulay bo'lishini ta'minlang. Semantik HTMLdan foydalaning va rasmlar va boshqa matn bo'lmagan tarkib uchun muqobil matnni taqdim eting. Turli tillar va yozuv tizimlari veb-saytingizning maketi va uslubiga qanday ta'sir qilishi mumkinligini o'ylab ko'ring. Masalan, o'ngdan chapga o'qiladigan tillar chapdan o'ngga o'qiladigan tillarga qaraganda boshqacha uslubni talab qilishi mumkin.
Masalan, mantiqiy xususiyatlar (masalan, margin-inline-start
) kabi yangi CSS xususiyatlaridan foydalanganda, ushbu xususiyatlar yozuv yo'nalishiga moslashish uchun mo'ljallanganligini unutmang. Chapdan o'ngga yoziladigan tillarda margin-inline-start
chap chetga, o'ngdan chapga yoziladigan tillarda esa o'ng chetga qo'llaniladi. Mantiqiy xususiyatlarni qo'llab-quvvatlamaydigan brauzerlar uchun zaxira uslublarini taqdim etish uchun Xususiyat So'rovlaridan foydalaning, bu barcha tillarda maketning izchil bo'lishini ta'minlaydi.
Xulosa
CSS Xususiyat So'rovlari 2-darajasi CSS xususiyatlari uchun brauzer qo'llab-quvvatlashini aniqlash va shunga mos ravishda uslublarni qo'llash uchun kuchli va moslashuvchan mexanizmni taqdim etadi. 2-darajaning imkoniyatlaridan foydalangan holda, ishlab chiquvchilar progressiv takomillashtirishni amalga oshirishi, mos keluvchi brauzerlarga ega foydalanuvchilarga zamonaviy foydalanuvchi tajribasini taqdim etishi va eski yoki kamroq qobiliyatli tizimlarga ega bo'lganlar uchun silliq zaxira variantini ta'minlashi mumkin. Eng yaxshi amaliyotlarga rioya qilish va global hamda maxsus imkoniyatlar mulohazalarini hisobga olish orqali siz turli xil brauzerlar va qurilmalarda yaxshi ishlaydigan mustahkam, qo'llab-quvvatlanadigan va foydalanuvchilar uchun qulay veb-saytlar va ilovalar yaratish uchun Xususiyat So'rovlaridan samarali foydalanishingiz mumkin.
CSS Xususiyat So'rovlarini veb-ishlab chiqish asboblar to'plamingizdagi muhim vosita sifatida qabul qiling va chinakam moslashuvchan va kelajakka mos veb-tajribalar yaratish imkoniyatini oching.