picha

CSS - somo la 34: if() Condition katika CSS

Katika somo hili, tutajifunza kipengele kipya kinachoitwa if() function ndani ya CSS, kilichoanza kupatikana kwenye toleo la Chrome 137. Kipengele hiki kinaturuhusu kuandika mantiki ya masharti moja kwa moja kwenye property ya CSS, bila kutumia JavaScript wala media query zilizotawanyika. Tutajifunza pia aina za queries: media(), supports(), na style() pamoja na matumizi yao ya kivitendo kwenye tovuti. Mwisho, tutaeleza kwa kina kuhusu pointer na any-pointer.

📘 Utangulizi

Kwa muda mrefu, CSS haikuweza kuandika masharti (conditionals) kama if au else. Ili kubadili mtindo wa ukurasa kutegemea na mazingira ya kifaa au hali ya elementi, tulilazimika kutumia:

Sasa kwa kutumia if() function, tunaweza kuweka masharti moja kwa moja kwenye property ya CSS, mfano: color, width, background, n.k. Hii inaondoa redundancy na kufanya code iwe safi zaidi.


 


✅ 1. Muundo wa if() Function

property: if(
  condition-1: value-1;
  condition-2: value-2;
  ...
  else: fallback-value
);

✅ 2. Aina Tatu za Condition Zinazotumika

Aina ya Condition Maelezo Mfano
media() Inatumia media query media(min-width: 600px)
supports() Inachunguza kama browser inasapoti feature supports(backdrop-filter: blur(10px))
style() Inachunguza thamani ya custom property au attribute style(--status: success)

✅ 3. Mifano ya Uhalisia


💡 A. Kuweka Button Size Kutegemea na Aina ya Pointer

button {
  width: if(media(any-pointer: fine): 30px; else: 44px);
  aspect-ratio: 1;
}

🔸 Maana:


💡 B. Kuweka Theme Kulingana na Dark/Light Mode

body {
  background: if(media(prefers-color-scheme: dark): #111; else: #fff);
  color: if(media(prefers-color-scheme: dark): #eee; else: #111);
}

🔸 Hii huongeza usability kwa watumiaji wanaopenda dark mode.


💡 C. Kuonyesha Background Color ya Kisasa (OKLCH) ikiwa Inasapotiwa

body {
  background-color: if(
    supports(color: oklch(0.7 0.185 232)): oklch(0.7 0.185 232);
    else: #00aaff
  );
}

💡 D. Kuonyesha Ujumbe wa Support Kutumia ::after

body::after {
  content: if(
    supports(color: oklch(0.7 0.185 232)): "Browser yako inasapoti OKLCH";
    else: "Browser yako haijasapoti OKLCH"
  );
}

💡 E. Kubadili Muonekano wa Kadi Kulingana na Status

HTML:

<div class="card" data-status="complete">Kazi imekamilika</div>

CSS:

.card {
  --status: attr(data-status type(<custom-ident>));

  border-color: if(
    style(--status: pending): orange;
    style(--status: complete): seagreen;
    else: gray
  );

  background-color: if(
    style(--status: pending): #fff5cc;
    style(--status: complete): #f0fff0;
    else: #f7f7f7
  );
}

💡 F. Kubadili Font Size kwa Touchscreen

button {
  font-size: if(media(any-pointer: coarse): 1.3rem; else: 1rem);
}

📌 Kipengele Maalum: Ufafanuzi wa pointer na any-pointer


✅ 1. pointer

Huchunguza aina ya kifaa kikuu cha kuingiza (primary input).

@media (pointer: fine) { }    /* mouse/stylus */
@media (pointer: coarse) { }  /* touchscreen ya vidole */
@media (pointer: none) { }    /* hakuna pointer: TV, sauti */

✅ 2. any-pointer

Huchunguza aina yoyote ya pointer (hata ikiwa sio ya msingi).

@media (any-pointer: coarse) {
  /* kifaa chochote kilicho na touchscreen */
}

📊 Jedwali la Tofauti

Kipimo pointer any-pointer
Huangalia Pointer kuu tu Pointer yoyote kwenye kifaa
Mfano Laptop yenye mouse Laptop yenye mouse + touchscreen
Matumizi bora Media ya msingi Fallback ya vifaa vingi

✅ Hitimisho

if() function ni kipengele cha kisasa kinachofanya CSS kuwa na nguvu zaidi, kwa kuruhusu kuandika masharti moja kwa moja kwenye property. Ukiunganisha na media queries kama pointer na any-pointer, unaweza kubuni tovuti zenye uwezo wa kujibadilisha kwa mazingira ya kifaa kwa usahihi zaidi na kwa mtindo safi.


🔜 Somo Linalofuata:

SOMO LA 35: CSS Custom Functions (@function) – Jinsi ya Kutengeneza Function Zako za CSS


🧠 Maswali ya Kujitathmini

  1. Ni aina gani ya condition haipo kwenye if() function?
    a) media()
    b) supports()
    c) style()
    d) event()

  2. pointer: coarse inamaanisha nini?
    a) Hakuna pointer
    b) Touchscreen yenye stylus
    c) Touchscreen ya vidole
    d) Mouse

  3. any-pointer: fine inamaanisha nini?
    a) Pointer kuu ni mouse
    b) Kuna aina yoyote ya pointer ya usahihi mkubwa
    c) Hakuna pointer
    d) Screen ni kubwa

  4. style(--status: pending) hutumika kwa kazi gani?
    a) Kuchunguza class
    b) Kuchunguza property ya script
    c) Kuchunguza thamani ya custom property
    d) Kuchunguza screen size

  5. Faida kuu ya if() function ni ipi?
    a) Hupunguza JavaScript
    b) Huongeza SEO
    c) Huondoa media queries zote
    d) Huongeza padding

Jiunge nasi WhatsApp kupata update zetu

Zoezi la Maswali

Nyuma Endelea


Umeionaje Makala hii.. ?

Nzuri            Mbaya            Save
Author: Rajabu image Tarehe: 2025-07-03 Topic: CSS Main: ICT File: Download PDF Views 460

Share On:

Facebook WhatsApp
Sponsored links
👉1 Sira ya Mtume Muhammad (s.a.w)    👉2 Dua za Mitume na Manabii    👉3 Kitabu cha Afya    👉4 Simulizi za Hadithi Audio    👉5 Tafasiri ya Riyadh Swalihina    👉6 Kitau cha Fiqh   

Post zinazofanana:

CSS - SOMO LA 31: CSS Filters (blur, brightness, contrast.)

Katika somo hili tutajifunza kuhusu CSS Filters — mitindo inayotumika kuhariri mwonekano wa picha, video, au elementi nyingine kwa kuongeza athari kama blur, brightness, contrast, grayscale, na nyinginezo. Hii huifanya tovuti kuwa ya kisasa, ya kuvutia, na yenye mwingiliano mzuri.

Soma Zaidi...
CSS - SOMO LA 10: Box Model katika CSS

Katika somo hili utajifunza muundo wa boksi (Box Model) katika CSS. Box model ni mfumo wa msingi wa kupanga vipengele katika ukurasa wa HTML, ukiwa na sehemu kuu nne: content, padding, border, na margin.

Soma Zaidi...
CSS - SOMO LA 23: Uelewa Zaidi wa CSS Animation na Transition

Somo hili linakuletea ufahamu wa kina juu ya CSS Transitions na Animations, likifafanua vipengele vyake muhimu, matumizi, na namna ya kutumia properties mbalimbali za animation kwa ufanisi katika kurahisisha muonekano na mtumiaji wa tovuti.

Soma Zaidi...
CSS - somo la 6: Kuweka Background kwenye HTML kwa kutumia CSS

Katika somo hili, utajifunza jinsi ya kudhibiti muonekano wa sehemu ya nyuma (background) ya HTML element kwa kutumia CSS. Utaweza kuongeza rangi, picha, kuweka picha zisirudiwarudiwe, na hata kusogeza picha kwenye maeneo tofauti ya ukurasa.

Soma Zaidi...
Drone: Nyuki Dume na Majukumu Yake

Simulizi hii inaelezea maisha ya nyuki dume, zinazojulikana kama drone. Inafafanua majukumu yao, maisha yao ya kila siku ndani ya kiwanda cha nyuki, na hatima yao baada ya kufanikisha kuzaliana na kifalme cha nyuki. Simulizi pia inaangazia tofauti zao na nyuki wa kike, na umuhimu wao katika uzazi wa kifalme.

Soma Zaidi...
CSS - SOMO LA 27: Kutumia @import Katika CSS

Katika somo hili, tutajifunza kuhusu @import — amri inayotumika kuingiza faili moja la CSS ndani ya jingine. Tutaona namna ya kuitumia, faida zake, hasara zake, na tofauti kati yake na njia mbadala ya <link> ndani ya HTML.

Soma Zaidi...
CSS - SOMO LA 21: CSS Units

Katika somo hili, utajifunza vipimo vinavyotumika kwenye CSS kama vile px, em, rem, %, vw, na vh. Vipimo hivi hutumika kuweka ukubwa wa maandishi, padding, margin, urefu, na upana wa vipengele kwenye tovuti.

Soma Zaidi...
CSS - SOMO LA 15: Float na Clear katika CSS

Katika somo hili utajifunza jinsi ya kutumia float ili kupanga elementi upande wa kushoto (left) au kulia (right). Pia utajifunza jinsi ya kutumia clear kuondoa athari za float na kuhakikisha layout yako inabaki thabiti.

Soma Zaidi...
CSS - SOMO LA 9: Margin na Padding

Katika somo hili utajifunza tofauti kati ya margin na padding, kazi ya kila moja, jinsi ya kuzipima, na jinsi zinavyotumika kudhibiti nafasi ndani na nje ya elementi kwenye ukurasa wa HTML.

Soma Zaidi...
CSS - SOMO LA 19: Pseudo-classes na Pseudo-elements

Katika somo hili, utajifunza kuhusu pseudo-classes kama :hover, :first-child, na :last-child, pamoja na pseudo-elements kama ::before, ::after, na ::selection. Hizi husaidia kubadili au kuongeza mitindo maalum kulingana na hali ya elementi au sehemu maalum ya elementi.

Soma Zaidi...