? Utangulizi

Kwa sababu watu hutumia vifaa vya ukubwa tofauti kama simu, tablet, na kompyuta, tovuti inapaswa kuonekana vizuri kwenye kila kifaa. Hapa ndipo Responsive Design inapohusika, na nyenzo kuu ya kufanikisha hili ni CSS Media Queries.


? Maudhui ya Somo


✅ 1. @media Rules

@media (max-width: 768px) {
  body {
    background-color: lightblue;
  }
}

? Maana yake: ikiwa upana wa skrini ni mdogo au sawa na 768px, badili rangi ya nyuma kuwa lightblue.


✅ 2. Breakpoints

Breakpoints ni pointi maalum (kwa kipimo cha px) ambapo layout inabadilika ili kufaa kifaa tofauti.

? Mfano wa Breakpoints ya kawaida:

Kifaa Upana (px)
Simu ndogo max-width: 480px
Simu ya kawaida max-width: 768px
Tablet max-width: 1024px
Kompyuta ndogo max-width: 1280px
Kompyuta kubwa zaidi ya 1280px
@media (max-width: 480px) {
  .menu {
    display: none;
  }
}

@media (min-width: 769px) {
  .menu {
    display: block;
  }
}

✅ 3. Mobile-First Design

Mobile-first ni mbinu ya kwanza kubuni kwa simu, kisha kupanua kwa vifaa vikubwa.

/* Styles za simu (default) */
.container {
  padding: 10px;
  font-size: 14px;
}

/* Styles kwa tablet na zaidi */
@media (min-width: 768px) {
  .container {
    padding: 30px;
    font-size: 18px;
  }
}

? Hii inaipa simu kipaumbele badala ya kuanza na desktop.


✅ 4. Mfano Kamili

<div class="box">Karibu!</div>
.box {
  background: green;
  color: white;
  padding: 20px;
  text-align: center;
}

/* Kwa vifaa vidogo */
@media (max-width: 600px) {
  .box {
    background: orange;
  }
}

/* Kwa vifaa vikubwa */
@media (min-width: 1024px) {
  .box {
    background: navy;
  }
}

✅ Hitimisho

Media queries ni njia bora ya kufanya tovuti yako ionekane vizuri kwenye kila kifaa. Kwa kutumia @media, unaweza kudhibiti layout kulingana na ukubwa wa skrini na kuweka uzoefu mzuri kwa watumiaji wa simu, tablet, au desktop.


? Somo Linalofuata: SOMO LA 21 - Transition na Animation

Tutajifunza jinsi ya kuleta miondoko na harakati kwenye tovuti kwa kutumia transition, transform, na animation.


? Maswali ya Kujitathmini

  1. @media (max-width: 768px) inamaanisha nini?
    a) Styles zitatumika ikiwa skrini ni kubwa zaidi ya 768px
    b) Styles zitatumika ikiwa skrini ni ndogo au sawa na 768px
    c) Styles zitatumika kwa kompyuta pekee
    d) Styles hazitafanya kazi

  2. Nini maana ya breakpoint?
    a) Kifaa kilichovunjika
    b) Muda wa kuvunja layout
    c) Kipimo cha skrini kinachobadili layout
    d) Kifaa kinapopotea mtandaoni

  3. Mobile-first design huanza na?
    a) Kompyuta
    b) Tablet
    c) Simu
    d) Smart TV

  4. Ili style ifanye kazi tu kwenye kompyuta yenye skrini kubwa zaidi ya 1024px, utatumia?
    a) @media (max-width: 1024px)
    b) @media (min-width: 1024px)
    c) @media screen
    d) @media desktop-only

  5. gap, flex, ::after ni sehemu za nini?
    a) Media queries
    b) HTML
    c) CSS Layout tools
    d) JavaScript