Ro'yxatlar va jadvallar

Bozorlik ro'yxati, retsept bosqichlari, sayt menyusi, dars jadvali, narxlar — bularning hammasi yo ro'yxat, yo jadval. Bu darsda ma'lumotni tartibli ko'rsatishning ikki asosiy usulini o'rganamiz.

Bu darsda

  • Tartibsiz ro'yxat ul va tartibli ro'yxat ol
  • Ichma-ich ro'yxatlar: sayt menyusi
  • Ta'riflar ro'yxati dl
  • Jadval: table, tr, th, td
  • Jadval qismlari: caption, thead, tbody, tfoot
  • Kataklarni birlashtirish: colspan va rowspan
  • Jadvalga chegara berish va jadvalni qachon ishlatmaslik

Tartibsiz ro'yxat: ul

Elementlarning tartibi muhim bo'lmasa — masalan, bozorlik ro'yxatida — tartibsiz ro'yxat ishlatiladi. U ikki xil tegdan iborat:

<h2>Bozorlik</h2>
<ul>
  <li>Non</li>
  <li>Sut</li>
  <li>Olma</li>
  <li>Guruch</li>
</ul>

Brauzer har bir band oldiga nuqta (marker) qo'ydi va ro'yxatni biroz o'ngga surdi. Muharrirga yana bitta <li>Choy</li> qo'shib ko'ring.

<ul> ning ichida to'g'ridan-to'g'ri faqat <li> turadi. Matn, sarlavha yoki rasm kerak bo'lsa, ularni <li> ning ichiga yozing. <li> ichida esa istalgan narsa bo'lishi mumkin: havola, rasm, hatto boshqa ro'yxat.

Tartibli ro'yxat: ol

Tartib muhim bo'lsa — qadamlar, reyting, yo'riqnoma — tartibli ro'yxat <ol> ishlatiladi (inglizcha ordered list). Bandlar baribir <li> bilan yoziladi, brauzer esa ularni o'zi raqamlaydi.

<h2>Choy damlash</h2>
<ol>
  <li>Choynakni qaynoq suv bilan chayib oling.</li>
  <li>Bir choy qoshiq ko'k choy soling.</li>
  <li>Qaynoq suv quyib, 5 daqiqa damlang.</li>
  <li>Choyni uch marta qaytaring.</li>
</ol>

<h2>Eng qadimiy shaharlar (teskari tartibda)</h2>
<ol reversed>
  <li>Toshkent</li>
  <li>Buxoro</li>
  <li>Samarqand</li>
</ol>

<h2>Test variantlari</h2>
<ol type="A">
  <li>HTML</li>
  <li>CSS</li>
  <li>JavaScript</li>
</ol>

Raqamlarni qo'lda yozmaganimizga e'tibor bering. Birinchi ro'yxatning o'rtasiga yangi qadam qo'shsangiz, keyingi raqamlar o'zi o'zgaradi — bu <ol> ning eng katta qulayligi. Raqamlashni atributlar bilan sozlash mumkin:

AtributNima qiladiMisol
typeRaqam turi: 1 — raqamlar (odatiy), a / A — harflar, i / I — rim raqamlari<ol type="i">
startQaysi raqamdan boshlash<ol start="5">
reversedTeskari sanash: 3, 2, 1. Qiymati yo'q<ol reversed>

Qaysi birini tanlashni bilmasangiz, o'zingizdan so'rang: «Bandlarning o'rnini almashtirsam, ma'no o'zgaradimi?» O'zgarsa — <ol>, o'zgarmasa — <ul>.

Ichma-ich ro'yxatlar

Ro'yxat bandining ichida yana bitta ro'yxat bo'lishi mumkin. Saytlardagi ochiladigan menyular aynan shunday quriladi:

<ul>
  <li>Bosh sahifa</li>
  <li>Kurslar
    <ul>
      <li>HTML</li>
      <li>CSS</li>
      <li>JavaScript</li>
    </ul>
  </li>
  <li>Biz haqimizda</li>
  <li>Aloqa</li>
</ul>

Ichki ro'yxat yanada o'ngga surildi va boshqacha marker oldi. Eng muhimi — ichki <ul> «Kurslar» bandining ichida: u <li>Kurslar dan keyin boshlanib, shu bandning yopuvchi </li> tegidan oldin tugaydi.

<!-- Noto'g'ri: ichki ro'yxat to'g'ridan-to'g'ri ul ichida -->
<ul>
  <li>Kurslar</li>
  <ul>
    <li>HTML</li>
  </ul>
</ul>

<!-- To'g'ri: ichki ro'yxat li ning ichida -->
<ul>
  <li>Kurslar
    <ul>
      <li>HTML</li>
    </ul>
  </li>
</ul>

Haqiqiy sayt menyusida har bir band havola bo'ladi: <li><a href="kurslar.html">Kurslar</a></li>. Menyuni <nav> ichiga joylashni 7-darsda, uni gorizontal qatorga terishni esa Flexbox darsida o'rganamiz.

Ta'riflar ro'yxati: dl

Atama va uning izohidan iborat juftliklar uchun — lug'at, savol-javob, mahsulot xususiyatlari — ta'riflar ro'yxati bor:

<h2>Kichik lug'at</h2>
<dl>
  <dt>HTML</dt>
  <dd>Sahifaning tuzilishi va mazmunini belgilaydigan til.</dd>
  <dt>CSS</dt>
  <dd>Sahifaning ko'rinishini — rang, shrift, joylashuvni belgilaydigan til.</dd>
  <dt>Brauzer</dt>
  <dd>Veb-sahifalarni ochib ko'rsatadigan dastur.</dd>
</dl>

Jadvallar

Ma'lumot qator va ustunlarga joylashsa — narxlar, dars jadvali, o'yin natijalari — jadval kerak bo'ladi. Jadval to'rtta asosiy tegdan quriladi:

Jadval tuzilishi: table butun jadvalni o'raydi, har bir qator tr, sarlavha kataklari th, oddiy kataklar td <table> Meva Narxi Soni Olma 15 000 2 kg Nok 20 000 1 kg <th> <td> <tr> <tr> <tr> Jadval qatorma-qator yoziladi: har bir tr ichida shu qatorning kataklari
Jadval = qatorlar (tr), qator = kataklar (th yoki td).
TegMa'nosi
<table>Butun jadval
<tr>Bitta qator (table row)
<th>Sarlavha katagi (table header) — ustun yoki qator nomi. Odatda qalin va markazda
<td>Oddiy katak (table data) — ma'lumotning o'zi
<table>
  <tr>
    <th>Meva</th>
    <th>Narxi (1 kg)</th>
  </tr>
  <tr>
    <td>Olma</td>
    <td>15 000 so'm</td>
  </tr>
  <tr>
    <td>Nok</td>
    <td>20 000 so'm</td>
  </tr>
  <tr>
    <td>Uzum</td>
    <td>18 000 so'm</td>
  </tr>
</table>

Jadval qatorma-qator yoziladi: avval birinchi qatorning barcha kataklari, keyin ikkinchisi va hokazo. «Ustun» degan alohida teg yo'q — ustunlar har bir qatordagi kataklar tartibidan o'zi hosil bo'ladi: har bir qatordagi birinchi katak — birinchi ustun, ikkinchisi — ikkinchi ustun.

Har bir qatorda kataklar soni bir xil bo'lsin. Bir qatorda katak kam bo'lsa, jadval «kemtik» chiqadi. Sinab ko'ring: yuqoridagi muharrirda «Uzum» qatoridan narx katagini o'chiring.

Chegaralar — CSS'ga kichik nazar

Yuqoridagi jadvalda chiziqlar yo'q — HTML jadvali odatda chegarasiz chiqadi. Chegaralar va ichki bo'sh joylar CSS bilan beriladi. CSS'ni hali o'rganmadik (u 8-darsda), lekin jadval uchun kerakli uchta qatorni hozir ko'rib qo'yamiz:

table  { border-collapse: collapse; }              /* qo'shni chegaralar bitta chiziqqa birlashsin */
th, td { border: 1px solid #999; padding: 6px 12px; } /* 1 piksellik kulrang chiziq va ichki bo'sh joy */
th     { background: #eef2f8; }                     /* sarlavha kataklari foni */

Jadval qismlari: caption, thead, tbody, tfoot

Kattaroq jadvalni mantiqiy qismlarga bo'lish mumkin:

<style>
  table { border-collapse: collapse; }
  th, td { border: 1px solid #999; padding: 6px 12px; }
  th { background: #eef2f8; }
</style>

<table>
  <caption>Mart oyidagi xarajatlar</caption>
  <thead>
    <tr><th>Nima uchun</th><th>Summa (so'm)</th></tr>
  </thead>
  <tbody>
    <tr><td>Oziq-ovqat</td><td>1 200 000</td></tr>
    <tr><td>Yo'l kira</td><td>250 000</td></tr>
    <tr><td>Internet</td><td>100 000</td></tr>
  </tbody>
  <tfoot>
    <tr><th>Jami</th><td>1 550 000</td></tr>
  </tfoot>
</table>

Endi jadval ancha tushunarli. Tajriba qiling: collapse so'zini separate ga almashtiring — har bir katakning o'z chegarasi paydo bo'lib, chiziqlar ikki qavat bo'ladi. Kichik jadvallarda thead/tbody majburiy emas, lekin ular jadvalni o'qishni va keyinchalik CSS bilan bezashni osonlashtiradi.

Agar <tbody> yozmasangiz, brauzer uni o'zi qo'shadi. F12 → Elements bo'limida istalgan jadvalni ochsangiz, buni ko'rasiz.

Kataklarni birlashtirish: colspan va rowspan

Ba'zan bitta katak bir nechta ustun yoki qator joyini egallashi kerak. Buning uchun ikki atribut bor:

Maktab dars jadvalida ikkalasi ham kerak: katta tanaffus butun qatorni egallaydi, juftlik dars esa ikki soatni:

<style>
  table { border-collapse: collapse; }
  th, td { border: 1px solid #999; padding: 6px 10px; text-align: center; }
  th { background: #eef2f8; }
  .tanaffus { background: #fff3cd; }
  .juft { background: #dcf1ef; }
</style>

<table>
  <caption>9-«A» sinf dars jadvali</caption>
  <tr>
    <th>Vaqt</th><th>Dushanba</th><th>Seshanba</th><th>Chorshanba</th>
  </tr>
  <tr>
    <th>8:30</th>
    <td>Matematika</td>
    <td rowspan="2" class="juft">Informatika</td>
    <td>Tarix</td>
  </tr>
  <tr>
    <th>9:20</th>
    <td>Ona tili</td>
    <!-- Seshanba katagi yozilmaydi: uni Informatika egallagan -->
    <td>Fizika</td>
  </tr>
  <tr>
    <th>10:10</th>
    <td colspan="3" class="tanaffus">Katta tanaffus</td>
  </tr>
  <tr>
    <th>10:30</th>
    <td>Ingliz tili</td><td>Kimyo</td><td>Biologiya</td>
  </tr>
</table>

Ikki muhim narsa:

  1. Kataklar sonini sanang. Jadvalda 4 ta ustun bor. «Tanaffus» qatorida: 1 ta th + colspan="3" li 1 ta td = 4. To'g'ri!
  2. rowspan dan keyingi qatorda bitta katak kam yoziladi. «Informatika» 9:20 qatoriga ham «tushib» turibdi, shuning uchun u qatorda Seshanba katagi yozilmagan.

Bu yerda th qatorlarning boshida ham ishlatildi: vaqt — qatorning nomi. class="tanaffus" orqali katakka rang berdik — klasslar bilan ishlashni 8-darsda o'rganamiz.

Jadvalni qachon ishlatmaslik kerak

Ilgari, CSS hali kuchsiz bo'lgan paytda, butun sahifa joylashuvi jadval bilan qurilardi: chap ustunda menyu, o'ngda matn. Bugun bunday qilinmaydi:

Oddiy tekshiruv: bu ma'lumotni Excel jadvaliga qo'yish mantiqiymi? Ha bo'lsa — <table>. Shunchaki elementlarni yonma-yon terish kerak bo'lsa — bu CSS'ning ishi (Flexbox va Grid, 11–12-darslar).

Mashqlar

1-mashq Xarid ro'yxati

Tartibli ro'yxat (<ol>) tuzing: kamida 3 ta band bo'lsin. Bandlardan biri «Mevalar» bo'lsin va uning ichida kamida 2 ta mevadan iborat tartibsiz ro'yxat (<ul>) tursin.

<h2>Xarid ro'yxati</h2>
<!-- Shu yerga tartibli ro'yxat yozing -->

Ishora

Ichki ro'yxat «Mevalar» bandining ichida bo'ladi: <li>Mevalar <ul>…</ul></li>. Yuqoridagi menyu misoliga qarang.

Yechimni ko'rish
<h2>Xarid ro'yxati</h2>
<ol>
  <li>Non</li>
  <li>Sut</li>
  <li>Mevalar
    <ul>
      <li>Olma</li>
      <li>Anor</li>
    </ul>
  </li>
  <li>Guruch</li>
</ol>

2-mashq Dars jadvali

Jadvalni to'ldiring:

  1. Jadvalga nom bering: <caption> (masalan, «Mening dars jadvalim»).
  2. 9:20 dagi darslar uchun yana bitta qator qo'shing (vaqt th da, darslar td da).
  3. Oxiriga tanaffus qatorini qo'shing: vaqt katagidan keyin bitta «Tanaffus» katagi ikkala kun ustunini egallasin (colspan).

Har bir qatorda jami 3 ta ustun bo'lishi kerak.

<style>
  table { border-collapse: collapse; }
  th, td { border: 1px solid #999; padding: 6px 12px; }
</style>

<table>
  <tr>
    <th>Vaqt</th>
    <th>Dushanba</th>
    <th>Seshanba</th>
  </tr>
  <tr>
    <th>8:30</th>
    <td>Matematika</td>
    <td>Ona tili</td>
  </tr>
  <!-- 9:20 dagi darslar qatorini qo'shing -->

  <!-- Tanaffus qatorini qo'shing (colspan) -->

</table>
Ishora

Tanaffus qatori: <tr><th>10:10</th><td colspan="2">Tanaffus</td></tr> — 1 + 2 = 3 ustun. <caption> esa <table> dan keyin birinchi bo'lib yoziladi.

Yechimni ko'rish
<style>
  table { border-collapse: collapse; }
  th, td { border: 1px solid #999; padding: 6px 12px; }
</style>

<table>
  <caption>Mening dars jadvalim</caption>
  <tr>
    <th>Vaqt</th>
    <th>Dushanba</th>
    <th>Seshanba</th>
  </tr>
  <tr>
    <th>8:30</th>
    <td>Matematika</td>
    <td>Ona tili</td>
  </tr>
  <tr>
    <th>9:20</th>
    <td>Fizika</td>
    <td>Tarix</td>
  </tr>
  <tr>
    <th>10:10</th>
    <td colspan="2">Tanaffus</td>
  </tr>
</table>

3-mashq Jadvalga chegara bering

To'garaklar jadvali chiziqsiz va tig'iz ko'rinyapti. <style> ichidagi bo'sh qoidalarni to'ldiring: jadval chegaralari birlashsin (border-collapse: collapse), har bir katakda 1 piksellik chegara va kamida 6 piksellik ichki bo'sh joy (padding) bo'lsin.

<style>
  table {  }
  th, td {  }
</style>

<table>
  <caption>Maktab to'garaklari</caption>
  <tr><th>To'garak</th><th>Kunlar</th><th>Vaqt</th></tr>
  <tr><td>Shaxmat</td><td>Dushanba, chorshanba</td><td>15:00</td></tr>
  <tr><td>Futbol</td><td>Seshanba, juma</td><td>16:30</td></tr>
  <tr><td>Robototexnika</td><td>Shanba</td><td>10:00</td></tr>
</table>
Yechimni ko'rish
<style>
  table { border-collapse: collapse; }
  th, td { border: 1px solid gray; padding: 8px; }
</style>

<table>
  <caption>Maktab to'garaklari</caption>
  <tr><th>To'garak</th><th>Kunlar</th><th>Vaqt</th></tr>
  <tr><td>Shaxmat</td><td>Dushanba, chorshanba</td><td>15:00</td></tr>
  <tr><td>Futbol</td><td>Seshanba, juma</td><td>16:30</td></tr>
  <tr><td>Robototexnika</td><td>Shanba</td><td>10:00</td></tr>
</table>

O'zingizni sinang

Raqamlangan (tartibli) ro'yxat qaysi teg bilan yoziladi?

  1. <ul>
  2. <ol>
  3. <li>
  4. <dl>

To'g'ri. ol — ordered list. Raqamlarni brauzer o'zi qo'yadi.

Ichma-ich ro'yxatda ichki <ul> qayerda turishi kerak?

  1. Tashqi <ul> dan keyin, alohida
  2. To'g'ridan-to'g'ri tashqi <ul> ichida, <li> lar orasida
  3. Tashqi ro'yxatning biror <li> elementi ichida
  4. Faqat <ol> ichida

To'g'ri. <ul> ning bevosita bolalari faqat <li> bo'ladi, shuning uchun ichki ro'yxat bandning ichiga yoziladi.

Jadvaldagi bitta qator qaysi teg bilan yoziladi?

  1. <td>
  2. <th>
  3. <table>
  4. <tr>

To'g'ri. tr — table row. Uning ichida kataklar: th va td.

<td colspan="3"> nima qiladi?

  1. Katak uchta ustun kengligini egallaydi
  2. Katak uchta qator balandligini egallaydi
  3. Jadvalga uchta ustun qo'shadi
  4. Katak matnini uch marta takrorlaydi

To'g'ri. Qatorlar bo'yicha birlashtirish uchun esa rowspan ishlatiladi.

Sahifani ikki ustunga bo'lish — chapda menyu, o'ngda matn — uchun nima ishlatiladi?

  1. <table> — bitta qator va ikkita katak
  2. Ikkita <ol>
  3. CSS (Flexbox yoki Grid)
  4. colspan="2"

To'g'ri. Jadval faqat jadvalli ma'lumot uchun. Sahifa joylashuvi — CSS'ning ishi.

Xulosa

  • <ul> — tartibsiz ro'yxat, <ol> — tartibli; bandlar doim <li>.
  • <ol> ni type, start va reversed atributlari bilan sozlash mumkin.
  • Ichki ro'yxat tashqi ro'yxatning <li> elementi ichida yoziladi.
  • <dl>, <dt>, <dd> — atama va izoh juftliklari uchun.
  • Jadval: table → tr (qator) → th (sarlavha katagi) / td (oddiy katak). Qismlari: caption, thead, tbody, tfoot.
  • colspan — bir necha ustunni, rowspan — bir necha qatorni egallash. Har bir qatorda ustunlar yig'indisi bir xil bo'lsin.
  • Chegaralar CSS bilan: border-collapse: collapse va border. Jadvalni sahifa joylashuvi uchun ishlatmang.