Katika somo hili, tutajifunza kuhusu CSS Specificity — yaani mfumo wa kipaumbele unaotumiwa na kivinjari kuchagua ni mtindo (style) upi utumike iwapo kuna migongano kati ya selectors mbalimbali. Utaelewa jinsi ya kupanga selectors zako vizuri ili kuzuia matatizo ya mitindo kutofanya kazi kama ulivyotarajia.
Katika CSS, wakati ambapo selector zaidi ya moja inalenga elementi ile ile, kivinjari huchagua mtindo mmoja tu wa kutumia. Ili kufanya hivyo, hutegemea mfumo unaoitwa specificity — ambao ni mfumo wa alama unaoamua ni mtindo gani una nguvu zaidi.
Mfano: Kama selector #header na .title zote zinaweka rangi ya maandishi tofauti kwenye <h1 class="title" id="header">, basi kivinjari kitaweka ile yenye specificity kubwa zaidi.
Specificity ni kipimo cha "nguvu" ya CSS selector. Selector yenye nguvu zaidi (specificity kubwa) hushinda zingine zinazolenga elementi hiyo hiyo.
CSS Specificity huhesabiwa kwa mfumo wa pointi kwa aina mbalimbali za selectors.
| Selector | Pointi/Uzito wa Specificity |
|---|---|
Inline styles (style="") |
1000 |
ID selectors (#id) |
100 |
Class, pseudo-class (.class, :hover) |
10 |
Element selectors (div, p) |
1 |
Universal selector (*) |
0 |
<h1 class="title" id="header">Habari</h1>
CSS:
h1 { color: blue; } /* Specificity = 1 */
.title { color: green; } /* Specificity = 10 */
#header { color: red; } /* Specificity = 100 */
Matokeo:
Rangi ya h1 itakuwa nyekundu, kwa sababu #header ina specificity kubwa zaidi.
<h1 id="main" style="color: orange;">Karibu</h1>
Inline style inakuwa na specificity ya 1000 — hivyo hushinda zote.
Pia, ikiwa utatumia !important, hiyo ina nguvu ya kipekee na hushinda hata selector yoyote:
.title {
color: blue !important;
}
Lakini tumia !important kwa tahadhari — ni vizuri kutumia specificity ya kawaida ili kuweka msimamizi bora wa CSS zako.
Tumia selectors zenye uhusiano mzuri: epuka kutumia id nyingi bila sababu.
Andika CSS kwa mfumo wa ndani nje: mfano, nav ul li a inaeleweka vizuri kuliko #menuItem.
Epuka kutumia !important ovyo.
Tumia specificity calculator (kama ile ya w3schools au CSS Tricks) kusaidia kuhesabu.
Specificity ni sehemu muhimu ya CSS ambayo kila mbunifu wa tovuti anatakiwa kuelewa. Ikiwa hautazingatia specificity, unaweza kuona mitindo yako haitumiki jinsi ulivyotarajia. Kwa kuielewa, utaweza kusuluhisha migongano ya CSS kwa haraka na kwa ustadi.
Ni ipi kati ya zifuatazo ina specificity kubwa zaidi?
a) .title
b) h1
c) #header
d) *
Specificity ya selector p.intro ni ngapi?
a) 1
b) 10
c) 11
d) 101
Ni ipi hutumika kushinda specificity zote ikiwa imewekwa?
a) .class
b) #id
c) style
d) !important
Selector div ul li a:hover ina specificity ya:
a) 4
b) 11
c) 12
d) 13
Ni ipi kati ya hizi ni njia bora ya kuepuka migongano ya specificity?
a) Kutumia id mara nyingi
b) Kutumia !important kila sehemu
c) Kufuatilia mfumo wa selectors wa ndani kwenda nje
d) Kutumia universal selector
Umeionaje Makala hii.. ?
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...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...Katika somo hili, utajifunza jinsi ya kudhibiti upana (width) na urefu (height) wa elementi katika CSS. Pia utaelewa tofauti kati ya max-width, min-width, na jinsi overflow inavyodhibiti tabia ya content inayoizidi element.
Soma Zaidi...Katika somo hili, tutajifunza jinsi ya kuleta miondoko na harakati kwenye tovuti kwa kutumia CSS Transitions na Animations. Hii itasaidia kuboresha muonekano na matumizi ya tovuti.
Soma Zaidi...Katika somo hili, tutajifunza kuhusu CSS Variables, au Custom Properties. Utajifunza jinsi ya kuunda, kuitumia, na faida za kutumia variables katika CSS ili kuweka msimamizi mzuri wa rangi, ukubwa, na mitindo mingine ya kurudia-rudia.
Soma Zaidi...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.
Soma Zaidi...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...Mfano wa kitu kinachoweza kumaba mtoto kooni ni kama chagula kigumu, pesa ya sarafu, kijiwe na mengineyo. Endapo hili litataokea msaada wa haraka unahitajika kwa ulazima.
Soma Zaidi...Katika somo hili, tutajifunza kuhusu CSS functions muhimu zinazotumika kufanya mahesabu, kuweka vipimo vya kisasa vinavyobadilika kulingana na hali ya kifaa, na kutumia variables. Tutazingatia functions kama: calc(), clamp(), var(), min(), max(), na mwishoni tutajifunza jinsi ya kutengeneza custom function kwa kutumia variables.
Soma Zaidi...Katika somo hili, utajifunza misingi ya CSS Grid Layout, mfumo wenye nguvu wa kupanga vipengele katika safu (rows) na nguzo (columns). Tutachambua display: grid, pamoja na grid-template-columns, grid-template-rows, gap, grid-column, na grid-row.
Soma Zaidi...