Veb dasturlashga birinchi qadam

HTML: veb sahifani noldan quring

Har bir sayt HTML bilan qurilgan. Kod yozasiz va natijani xuddi shu yerda, jonli brauzer oynasida darrov ko'rasiz. Teg anatomiyasidan to'liq sahifa qurishgacha.

Boshlash
8 modulJonli natijaSertifikat
JONLI DEMO

Bu natijani qaysi teg beradi?

To'g'ri! Shu teg.

Xush kelibsiz! HTML (HyperText Markup Language), bu veb sahifalar tili. U brauzerga sahifada nima borligini aytadi: sarlavha, matn, rasm, tugma. Bu kursda har tushunchani ko'z bilan ko'rasiz va o'zingiz sinab ko'rasiz. Boshlaymiz.

1
1-MODUL

HTML nima?

Veb sahifa qanday ishlaydi

Siz HTML kodini yozasiz, brauzer uni o'qiydi va ekranga sahifa qilib chizadi. Ya'ni HTML, bu sizning ko'rsatmalaringiz; brauzer esa ularni bajaruvchi. Quyida chap tomonda kod, o'ng tomonda brauzer natijasi. Kodni o'zgartiring va o'ng tomon darrov yangilanishini ko'ring.

Asosiy fikr: HTML fayl, bu oddiy matn. Brauzer shu matnni o'qib, chiroyli sahifaga aylantiradi.

Teg (tag) nima

HTML burchakli qavslar < > ichidagi teglardan tuziladi. Har teg brauzerga "bu qism nima ekanini" aytadi. Ko'pincha teg juft bo'ladi: «ochuvchi» teg boshlaydi, «yopuvchi» teg tugatadi, ular orasida esa «kontent» (matn) turadi.

<h1>Salom</h1> Ochuvchi teg Kontent Yopuvchi teg Yopuvchi tegda nom oldidan / qo'yiladi
Teg anatomiyasi: <h1> katta sarlavha yasaydi

Lekin hamma teg ham juft emas. Ba'zilari «toq» (yolg'iz) bo'ladi: ular yopilmaydi, chunki ichida kontent yo'q. Bu ikki turni ajratib olish HTMLdagi eng muhim asoslardan biri:

JUFT TEG<h1> Salom </h1>

Ochuvchi va yopuvchi teg birga. Orasida kontent bor. Masalan: <h1>, <p>, <div>.

TOQ TEG<br>

Yolg'iz keladi, yopuvchisi yo'q. Ichi bo'sh. Masalan: <br>, <hr>, <img>.

Endi o'zingiz sinang. Quyidagi muharrirda matnni <h1> yoki <p> teglari bilan o'rang va natijani kuzating:

<h1> eng katta sarlavha, <p> esa oddiy xatboshi (paragraf) yasaydi.

Birinchi amaliyot

Endi o'zingiz kichik sahifa yasang. Muharrirda bitta sarlavha va bitta paragraf bo'lishi kerak. Vazifa bajarilsa, quyidagi belgi yashil bo'ladi.

VazifaSahifada sarlavha (<h1>) allaqachon bor. Pastiga o'zingizning paragrafingizni (<p>...</p>) qo'shing. Ikkalasida ham matn bo'lsin.

Mashqlar: mustahkamlash

Quyidagi kichik vazifalarni birma-bir bajaring. Har birida kod yozing va natijani darhol yonida ko'ring. Uchala mashq to'g'ri bo'lsa, bo'lim yakunlanadi.

Modul testi

2
2-MODUL

Sahifa skeleti

To'liq sahifa skeleti

Haqiqiy HTML sahifa yolg'iz teglardan emas, balki standart «skelet»dan boshlanadi. Bu skelet brauzerga sahifani qanday o'qishni aytadi. Deyarli har sahifa quyidagi qismlardan iborat:

<html> </html> <head> Ko'rinmaydi: nom, sozlamalar <body> Ko'rinadi: sarlavha, matn, rasm Sarlavha Matn Rasm
<html> butun sahifani o'raydi; ichida <head> (ko'rinmas) va <body> (ko'rinadigan) bo'ladi

Har qismning vazifasi:

  • <!DOCTYPE html>: brauzerga «bu HTML5» deydi (birinchi qatorda turadi).
  • <html lang="uz">: butun sahifani o'raydi; lang="uz" sahifa tili o'zbekcha ekanini bildiradi (qidiruv tizimi va tarjimonlar uchun muhim).
  • <meta charset="utf-8">: harflar kodlashini belgilaydi. Busiz o'zbekcha yoki boshqa harflar buzuq chiqishi mumkin. <head> ichida birinchi bo'lishi kerak. Bu toq teg (yopilmaydi).
  • <head>: ko'rinmaydigan ma'lumot (sozlamalar, sahifa nomi).
  • <body>: ko'rinadigan qism (sarlavha, matn, rasm).
  • <title>: sahifa nomi; brauzer tabida chiqadi.

Quyida to'liq skelet. O'zgartiring va natijani kuzating:

Asosiy fikr: bu skelet deyarli har HTML sahifada bir xil. Uni bir marta yodlab olsangiz, har doim shu bilan boshlaysiz. Haqiqiy saytlarda yana <meta name="viewport"> bo'ladi (telefon ekraniga moslash uchun); buni media modulida ko'ramiz.

head va body farqi

<head> va <body>, bu sahifaning ikki asosiy qismi. <head> ichidagisi ekranda ko'rinmaydi (u faqat sahifa haqidagi ma'lumot). <body> ichidagisi esa ekranda ko'rinadi.

Mening saytim Salom! Tugma <head> brauzer tab nomi <body> ko'rinadigan qism
<head> dagi <title> brauzer tabida chiqadi; <body> esa sahifada ko'rinadi

Sinab ko'ring: <head> dagi <title> natijada ko'rinmaydi, faqat <body> dagi matn ko'rinadi:

<title> matni brauzerning varaq (tab) sarlavhasida chiqadi, sahifa ichida emas.

Amaliyot: sahifaga nom bering

Quyida to'liq skelet bor, lekin sahifaning nomi bo'sh. <title> teg ichiga o'z sahifangiz nomini yozing.

Vazifa<title> va </title> orasiga sahifangiz nomini yozing (masalan, ismingiz yoki sayt nomi).

Mashqlar: mustahkamlash

Quyidagi kichik vazifalarni birma-bir bajaring. Har birida kod yozing va natijani darhol yonida ko'ring. Uchala mashq to'g'ri bo'lsa, bo'lim yakunlanadi.

Modul testi

3
3-MODUL

Matn va sarlavhalar

Sarlavhalar: h1 dan h6 gacha

Sarlavha uchun 6 ta daraja bor: <h1> eng katta, <h6> eng kichik. Ular matnni bo'limlarga ajratadi. Sahifada odatda bitta <h1> (asosiy sarlavha), qolganlari kichik bo'limlar uchun ishlatiladi.

Sarlavha <h1> katta Sarlavha <h2> Sarlavha <h3> Sarlavha <h4> Sarlavha <h5> Sarlavha <h6> kichik
Yuqoridan pastga: <h1> eng katta, <h6> eng kichik

Muharrirda sarlavha raqamini o'zgartiring (1 dan 6 gacha) va o'lcham qanday o'zgarishini ko'ring:

Maslahat: sarlavhani o'lcham uchun emas, ahamiyat uchun tanlang. Kattaroq ko'rsatish kerak bo'lsa, keyinroq CSS ishlatasiz.

Paragraflar: p, br va probel

Oddiy matn <p> (paragraph, xatboshi) ichiga yoziladi. Har bir <p> alohida blok bo'lib, oldidan va keyinidan bo'sh joy qoldiradi. Muhim qoida: HTML kodidagi ortiqcha probel va yangi qatorlar brauzerda bitta probelga aylanadi. Ya'ni kodda 10 ta probel qo'ysangiz ham, ekranda bitta bo'ladi.

Kod (manba) Salom·····dunyo Natija (brauzer) Salom dunyo
Brauzer ortiqcha probel va yangi qatorlarni bitta probelga siqadi

Matn ichida ataylab yangi qatordan boshlash uchun <br> (toq teg), bo'limlarni ajratuvchi chiziq uchun <hr> ishlatiladi. Quyida sinab ko'ring: birinchi xatboshidagi ortiqcha probellar siqiladi, ikkinchisida <br> yangi qator beradi:

Eslab qoling: matnni yangi qatordan boshlash uchun kodda Enter bosish yetmaydi (u probelga aylanadi). Bitta qatorni sindirish uchun <br>, yangi xatboshi uchun esa yangi <p> ishlating.

Styles: stil atributi

Elementning ko'rinishini (rang, o'lcham, fon) o'zgartirish uchun unga style atributi beriladi. Uning ichiga CSS xossalari xossa: qiymat ko'rinishida, ; bilan ajratib yoziladi. Bu «ichki stil» (inline CSS) deb ataladi.

style="color: red; font-size: 20px" atribut nomi xossa: qiymat juftlari
Ichkarida xossa: qiymat juftlari ; bilan ajratiladi

Eng ko'p ishlatiladigan xossalar:

  • color: matn rangi (masalan red yoki #e34f26)
  • background-color: fon rangi
  • font-size: matn o'lchami (masalan 20px)
  • text-align: joylashuv (left, center, right)
  • font-family: shrift turi (masalan Georgia)
  • padding: ichki bo'shliq (masalan 10px)

Quyida jonli sinab ko'ring: qiymatlarni o'zgartiring va ko'rinish qanday o'zgarishini kuzating:

Ichki stil vs alohida CSS: style atributi tez va oson, lekin uni har bir elementga alohida yozish kerak. Ko'p element bir xil ko'rinishi uchun keyinroq alohida CSS (class bilan) ishlatiladi, bu 7-modulda tilga olinadi.

Matn formatlash teglari

Oddiy matn <p> (paragraf) ichiga yoziladi. Ichidagi ba'zi so'zlarni ajratish uchun ko'plab teglar bor. Avval bitta muhim tushuncha: teglar tuzilishiga ko'ra ikki turga bo'linadi.

JUFT TEG<b> matn </b>

Ochuvchi va yopuvchi teg birga keladi, ular orasida kontent (matn) turadi. Teglarning aksariyati shunday.

TOQ TEG<br>

Yolg'iz keladi, yopuvchi qismi yo'q. Ichida kontent bo'lmaydi. Masalan: <br>, <hr>, <img>.

Quyida asosiy formatlash teglari: kodi, tayyor natijasi, vazifasi va turi. Natija ustunida haqiqiy ko'rinishni kuzating:

TegNatijaVazifasiTuri
<strong>matnMuhim matn (qalin + ma'no)juft
<b>matnQalin (faqat ko'rinish)juft
<em>matnUrg'uli matn (qiya + ma'no)juft
<i>matnQiya (faqat ko'rinish)juft
<mark>matnBelgilangan (rangli fon)juft
<ins>matnQo'shilgan matn (tag chiziq)juft
<u>matnTag chiziq (faqat ko'rinish)juft
<del>matnO'chirilgan matnjuft
<s>matnEskirgan (chizib tashlangan)juft
<sub>H2OPastki indeksjuft
<sup>x2Yuqori indeks (daraja)juft
<code>a = 5Kod (bir xil enli shrift)juft
<q>salomQisqa iqtibos (qo'shtirnoq qo'shadi)juft
<marquee>matnMatnni siljitadi (eskirgan)juft
<br>1-qator
2-qator
Yangi qatordan boshlayditoq
<hr>
Bo'limlarni ajratuvchi chiziqtoq
Eslatma: <marquee> (harakatlanuvchi matn) eskirgan teg. Brauzerlar hali ko'rsatadi, lekin zamonaviy saytlarda uning o'rniga CSS animatsiya ishlatiladi.
Ko'rinishi bir xil, ma'nosi boshqa: <b> va <strong> ikkalasi ham qalin ko'rsatadi, lekin <strong> «bu muhim» ma'nosini beradi (qidiruv tizimi va ekran o'quvchi buni tushunadi). Xuddi shunday <i> va <em>. Iloji bo'lsa ma'noli variantni (<strong>, <em>) tanlang.

Endi o'zingiz sinab ko'ring. So'zlarni turli teglar bilan o'rab, natijasini kuzating:

Comments: izohlar

Izoh (comment), bu kodga o'zingiz uchun yozadigan eslatma. Brauzer uni o'qimaydi va ekranda ko'rsatmaydi. Izoh <!-- bilan boshlanib, --> bilan tugaydi; ular orasidagi hamma narsa yashirin qoladi. Izoh ikki narsaga kerak: (1) kodni tushuntirish, (2) biror qismni vaqtincha «o'chirib qo'yish» (o'chirmasdan yashirish).

Kod <!-- izoh --> <p>Matn</p> <!-- <p>... --> Natija Matn
<!-- ... --> ichidagi hamma narsa brauzerda ko'rinmaydi

Quyida sinab ko'ring: izoh va izohga olingan paragraf natijada chiqmaydi:

Maslahat: biror teg vaqtincha kerak bo'lmasa, uni o'chirmang, balki <!-- va --> orasiga oling. Keyin kerak bo'lganda izoh belgilarini olib tashlab, qaytarasiz.

Amaliyot: kichik maqola

Sahifada sarlavha va paragraf bor. Endi paragrafdagi biror so'zni <b> teg bilan qalin qiling.

VazifaSahifada sarlavha (<h1>-<h6>) va paragraf (<p>) bo'lsin, hamda kamida bitta so'z <b> bilan qalin bo'lsin.

Mashqlar: mustahkamlash

Quyidagi kichik vazifalarni birma-bir bajaring. Har birida kod yozing va natijani darhol yonida ko'ring. Uchala mashq to'g'ri bo'lsa, bo'lim yakunlanadi.

Modul testi

4
4-MODUL

Ro'yxat va havolalar

Ro'yxatlar: ul, ol va li

Ro'yxat uch tegdan tuziladi. Tashqi teg butun ro'yxatni o'raydi: <ul> (belgili, tartibsiz) yoki <ol> (raqamli, tartibli). Ichkarida esa har bir band alohida <li> (list item) teg ichida yoziladi. Ya'ni matnni to'g'ridan-to'g'ri emas, doim <li>...</li> orasiga qo'yasiz, keyin barcha <li> larni <ul> yoki <ol> ichiga joylaysiz.

<ul> <li>Olma</li> <li>Anor</li> </ul> Olma Anor <ol> <li>Olma</li> <li>Anor</li> </ol> 1.Olma 2.Anor
Bir xil <li> bandlar (kodda nuqta yoki raqam yo'q). Faqat tashqi teg farq qiladi: <ul> belgi (•), <ol> raqam (1.) chizadi

Muharrirda ro'yxatga yana <li> qo'shing yoki <ul> ni <ol> ga o'zgartirib, natijani kuzating:

Belgi yoki raqamning ko'rinishini type atributi bilan tanlaysiz. U ochuvchi tegga yoziladi, masalan <ul type="square">. Quyida barcha qiymatlar va tayyor natijasi:

KodNatijaIzoh
<ul type="disc">
  • band
To'la doira (standart)
<ul type="circle">
  • band
Bo'sh doira
<ul type="square">
  • band
To'la kvadrat
<ol type="1">
  1. band
Raqam (standart)
<ol type="A">
  1. band
Katta harf: A, B, C
<ol type="a">
  1. band
Kichik harf: a, b, c
<ol type="I">
  1. band
Katta rim: I, II, III
<ol type="i">
  1. band
Kichik rim: i, ii, iii
Maslahat: <ul> ni tartib muhim bo'lmaganda (xaridlar ro'yxati), <ol> ni tartib muhim bo'lganda (retsept qadamlari) ishlating. <ol> da yana start="5" (5 dan boshlash) va reversed (teskari sanash) atributlari ham bor.

Havolalar va atributlar

Havola (link) bosilganda boshqa sahifaga olib boradi. U <a> teg bilan yaratiladi. Lekin <a> qayerga borishini bilishi kerak, buni atribut orqali aytamiz.

Atribut, bu teg ichidagi qo'shimcha ma'lumot. U nom="qiymat" ko'rinishida ochuvchi teg ichida yoziladi. Havola uchun bu atribut href (manzil) deb ataladi:

<a href="sayt.html">Sayt</a> atribut: qayerga boradi ko'rinadigan matn
href qayerga borishni, teg ichidagi matn esa nima ko'rinishini belgilaydi

Muharrirda havola matnini yoki manzilini o'zgartiring va natijadagi havolani bosib ko'ring:

target="_blank" atributini qo'shsangiz, havola yangi tabda ochiladi: <a href="..." target="_blank">.

Amaliyot: menyu yasang

Kichik menyu yasang: bitta ro'yxat va bitta havola bo'lsin.

VazifaSahifada ro'yxat (<ul> yoki <ol>, ichida <li>) va bitta havola (<a href="...">) bo'lsin.

Mashqlar: mustahkamlash

Quyidagi kichik vazifalarni birma-bir bajaring. Har birida kod yozing va natijani darhol yonida ko'ring. Uchala mashq to'g'ri bo'lsa, bo'lim yakunlanadi.

Modul testi

5
5-MODUL

Rasm va media

Rasm qo'yish: img

Sahifaga rasm qo'yish uchun <img> teg ishlatiladi. U toq (yolg'iz) teg, ya'ni yopilmaydi. Rasmning o'zi kod ichida bo'lmaydi, teg faqat rasm qayerdaligini ko'rsatadi. Buning uchun ikki muhim atribut bor: src (rasm manzili) va alt (rasm chiqmasa yoki ko'rish imkoniyati cheklangan foydalanuvchi uchun matn).

<img src="tog.jpg" alt="Tog'lar"> manzil: qayerdan olinadi matn: rasm chiqmasa
src rasm manzili (fayl nomi yoki havola), alt esa uni tavsiflovchi matn

Muharrirda alt matnini yoki width (kenglik) qiymatini o'zgartiring va natijani kuzating:

Nega alt muhim: rasm yuklanmasa uning o'rniga alt matni chiqadi; ekran o'quvchi buni ovoz bilan o'qiydi; qidiruv tizimi rasm nima ekanini shundan tushunadi. Shuning uchun har doim mazmunli alt yozing.

O'lcham va boshqa media

Rasm o'lchamini width (kenglik) va height (balandlik) atributlari piksel bilan belgilaydi. Ko'pincha faqat bittasi (masalan width) yoziladi, ikkinchisi mutanosib o'zgaradi.

width height
width kenglikni, height balandlikni piksel bilan belgilaydi

Muharrirda width qiymatini o'zgartiring va rasm qanday kichrayib-kattalashishini ko'ring:

Rasmdan tashqari yana video va audio ham qo'yish mumkin. Ular juft teg va controls atributi bilan ijro tugmalarini ko'rsatadi:

  • <img>: rasmni ko'rsatadi (src, alt). Toq teg.
  • <video controls>: videoni ijro etadi (play, pauza, ovoz). Juft teg.
  • <audio controls>: audioni ijro etadi. Juft teg.

Quyida jonli namuna: controls atributi ijro tugmalarini chiqaradi. Video va audio pleyerlarini bosib sinab ko'ring:

Maslahat: o'lchamni HTML atributida emas, keyinroq CSS bilan boshqarish moslashuvchan (responsive) saytlar uchun qulayroq. Hozircha width yetarli.

YouTube videosini joylash

Boshqa saytdagi videoni (masalan YouTube) o'z sahifangizga qo'yish uchun <iframe> ("ichki ramka") ishlatiladi. YouTube videosini oching, "Share" (Ulashish), keyin "Embed" (Kodni joylash) tugmasini bosing va berilgan <iframe> kodini nusxalab sahifaga qo'ying. src ichida video manzili, width/height esa o'lchami turadi:

<iframe width="420" height="236"
  src="https://www.youtube.com/embed/tgbNymZ7vqY"
  title="YouTube video"></iframe>

Yuqoridagi kod aynan quyidagi videoni sahifaga joylaydi (bosib ijro eting):

iframe nima: u sahifa ichiga boshqa bir sahifani (video, xarita) joylaydigan "oyna". YouTube, Google Maps kabilar aynan shu <iframe> orqali qo'yiladi. Video ID (embed/ dan keyingi qism) har bir videoda boshqacha bo'ladi.

Amaliyot: rasmga alt bering

Quyidagi rasmda alt yo'q. Unga mazmunli alt matnini qo'shing.

Vazifa<img> tegiga bo'sh bo'lmagan alt="..." atributini qo'shing (rasm nimani ko'rsatishini yozing).

Mashqlar: mustahkamlash

Quyidagi kichik vazifalarni birma-bir bajaring. Har birida kod yozing va natijani darhol yonida ko'ring. Uchala mashq to'g'ri bo'lsa, bo'lim yakunlanadi.

Modul testi

6
6-MODUL

Jadval va formalar

Jadval: table, tr, th, td

Ma'lumotni qator va ustunlarga joylash uchun jadval ishlatiladi: <table> butun jadval, <tr> bitta qator (table row), <th> sarlavha katak (qalin, markazda), <td> oddiy katak (table data). Chegara ko'rinishi uchun <table> tegiga border="1" atributini beramiz (bu HTML atribut), cellpadding="6" esa kataklar ichiga bo'sh joy qo'yadi.

<table> <th> <th> <td> <td> tr tr
<table> jadval, <tr> qator, <th> sarlavha katak, <td> oddiy katak

Quyida ikki ustunli jadval. Kataklar (<td>) matnini o'zgartiring yoki yangi qator (<tr>) qo'shib ko'ring:

Tartib muhim: <table> ichida <tr>, <tr> ichida <th> yoki <td> keladi. Ustunlar soni har qatorda bir xil bo'lgani ma'qul.

Kataklarni birlashtirish: colspan, rowspan

Ba'zan bitta katak bir nechta ustun yoki qatorni egallashi kerak. colspan="2" katakni gorizontal birlashtiradi (2 ustun kengligida). rowspan="2" katakni vertikal birlashtiradi (2 qator balandligida). Katak birlashtirilganda, uning o'rniga keyingi qator yoki ustunda ortiqcha <td> yozilmaydi.

colspan="2" th (2 ustun) td td rowspan="2" td (2 qator) td td
colspan katakni bir nechta ustunga, rowspan bir nechta qatorga cho'zadi

Quyida colspan (yuqori sarlavha 2 ustun) va rowspan ("Til" 2 qator) birga ishlatilgan. Sonlarni o'zgartirib ko'ring:

Eslab qoling: colspan = ustun bo'yicha (gorizontal), rowspan = qator bo'yicha (vertikal). Birlashtirilgan katak nechta joyni egallasa, o'sha qatorlarda shuncha <td> kam yoziladi.

Forma va input turlari

Foydalanuvchidan ma'lumot olish uchun forma ishlatiladi. Forma <form> ichida bo'ladi: <label> maydon nomi (yorliq), <input> kiritish maydoni, <button> tugma. <input> ning type atributi maydon turini belgilaydi. Quyida asosiy turlar keltirilgan (har birini bosib sinab ko'ring):

typeKo'rinishiTavsif
textOddiy bir qatorli matn
passwordYashirin parol (nuqtalar)
emailEmail (@ belgisini tekshiradi)
numberFaqat raqam (o'q tugmalari bilan)
telTelefon raqami
urlHavola (URL) manzili
searchQidiruv maydoni
dateSana tanlash (kalendar)
timeVaqt tanlash
datetime-localSana va vaqt birga
monthOy va yil
weekYil va hafta
colorRang tanlash
rangeSlayder (diapazon)
checkboxBelgilash katakchasi (ko'p tanlov)
radioDoiracha (bittasini tanlash)
fileFayl yuklash
submitFormani yuboradigan tugma
resetMaydonlarni tozalaydigan tugma
buttonOddiy tugma
hiddenko'rinmaydiYashirin maydon (ma'lumot uchun)

Ikki muhim atribut: placeholder maydon bo'sh turganda ichida maslahat matnini ko'rsatadi; required esa maydonni to'ldirishni majburiy qiladi (bo'sh bo'lsa forma yuborilmaydi). Quyida jonli forma:

placeholder va required: placeholder="Ismingiz" kulrang maslahat matni; required qiymatsiz atribut, u bor bo'lsa maydonni bo'sh qoldirib bo'lmaydi. <input> toq teg, yopilmaydi.

textarea, radio, checkbox, select

<input> dan tashqari yana bir nechta maydon turi bor:

  • <textarea>: ko'p qatorli matn (izoh, xabar). Juft teg. rows atributi balandligini beradi.
  • <input type="radio">: variantlardan faqat bittasi tanlanadi. Bir guruh bo'lishi uchun ularning name atributi bir xil bo'lishi shart.
  • <input type="checkbox">: bir nechta variantni birga belgilash mumkin.
  • <select> va ichidagi <option>: ochiluvchi ro'yxat (dropdown).
radio faqat bittasi checkbox bir nechta
radio doiracha (bittasini tanlash), checkbox katakcha (bir nechtasini)

Quyida hammasi jonli. Radio, checkbox va ochiluvchi ro'yxatni bosib ko'ring:

radio uchun name: bir savolning variantlariga bir xil name bering (masalan ikkalasiga ham name="jins"). Shundagina ular bitta guruh bo'lib, faqat bittasi tanlanadi.

Amaliyot: formaga izoh maydoni qo'shing

Quyidagi formada ism maydoni va tugma bor. Unga izoh yozish uchun <textarea> qo'shing.

VazifaForma ichiga <textarea></textarea> (izoh maydoni) qo'shing.

Mashqlar: mustahkamlash

Quyidagi kichik vazifalarni birma-bir bajaring. Har birida kod yozing va natijani darhol yonida ko'ring. Uchala mashq to'g'ri bo'lsa, bo'lim yakunlanadi.

Modul testi

7
7-MODUL

Struktura: div, span, class, id

div: elementlarni guruhlash

Katta sahifada elementlarni guruhlarga ajratish kerak bo'ladi: yuqori qism, asosiy qism, pastki qism. Buning uchun <div> tegi ishlatiladi. <div> o'zi hech qanday ko'rinish bermaydi, u shunchaki bir nechta elementni bitta quti ichiga oladi. Bu quti keyinroq CSS bilan bezatiladi yoki joyi belgilanadi.

<div> Sarlavha (h1) Matn (p)
<div> bir nechta elementni bitta ko'rinmas quti ichiga birlashtiradi

Quyida <div> ichiga sarlavha va matn joylashtirilgan. Chegara (border) qutini ko'rsatib turibdi:

div nima uchun: u ko'rinmas quti. Bir nechta elementni birga saqlaydi, keyin ularni birgalikda bezatish yoki ko'chirish oson bo'ladi. Shunday qilib sahifa mantiqiy bo'laklarga bo'linadi.

span va block/inline elementlar

HTML elementlari ikki asosiy turga bo'linadi: block va inline. Block element har doim yangi qatordan boshlanadi va butun enni (chapdan o'nggacha) egallaydi: <div>, <p>, <h1>-<h6>, <ul>, <li>, <table>, <form>. Inline element esa yangi qator ochmaydi; faqat o'z kontenti qadar joy egallaydi va matn ichida yonma-yon turadi: <span>, <a>, <b>, <img>, <input>. Shuning uchun <div> block quti (kattaroq bo'laklarni guruhlaydi), <span> esa inline quti (matn ichidagi kichik bo'lakni belgilaydi).

block div p h1 inline span a b img i
Block elementlar yangi qatordan, to'liq enlik ustun bo'lib; inline elementlar matn qatori ichida yonma-yon

Quyida farqni ko'ring: ikki <div> (block) yangi qatordan boshlanadi va to'liq enlik; <span> (inline) esa jumla ichida yonma-yon turadi. Fon rangi qutilarning enini ko'rsatadi:

span qachon: matn ichidagi bitta so'zni yoki bo'lakni ajratib belgilash uchun (masalan bir so'zni boshqa rangda ko'rsatish; keyin unga class berib CSS bilan bezaladi). Kattaroq bo'laklarni guruhlash uchun esa <div>.

class va id: yorliq berish

Elementlarga yorliq (belgi) berish mumkin. Ikki xil yorliq bor: class va id. class bu guruh yorlig'i: uni bir nechta elementga berish mumkin (masalan hamma kartalarga class="karta"). id esa yagona yorliq: u sahifada faqat bitta elementga beriladi (masalan asosiy blokka id="asosiy"). Bu yorliqlar keyinroq CSS va JavaScript uchun kerakli elementni topishga yordam beradi.

class="karta" id="asosiy" div class="karta" div class="karta" div
Yashil class bir nechta elementga qo'yiladi (takrorlanadi); to'q sariq id faqat bittasiga (yagona)

Quyidagi kodda <style> ichida .karta (class) va #asosiy (id) bezatilgan. Ikkala div ham karta class'iga ega, lekin faqat bittasi asosiy id'ga ega:

Farqni eslang: class takrorlanadi (ko'p element), id takrorlanmaydi (bitta, yagona element). Bir elementda ikkalasi ham bo'lishi mumkin. CSS'da . class'ni, # id'ni bildiradi.

Amaliyot: karta yasang

Quyida yashil chegarali .mahsulot uslubi tayyor turibdi. Endi shu class'li <div> ni o'zingiz yozing va ichiga biror matn qo'ying.

VazifaIchida matn bo'lgan <div class="mahsulot">...</div> yozing (yashil ramka paydo bo'lsin).

Mashqlar: mustahkamlash

Quyidagi kichik vazifalarni birma-bir bajaring. Har birida kod yozing va natijani darhol yonida ko'ring. Uchala mashq to'g'ri bo'lsa, bo'lim yakunlanadi.

Modul testi

8
8-MODUL

Semantik HTML va yakuniy loyiha

Semantik teglar: header, nav, main, footer

Hozirgacha guruhlash uchun <div> ishlatdik. Lekin <div> «bu nima» ekanini bildirmaydi. HTML5 semantik (ma'noli) teglarni beradi: ular xuddi <div> kabi guruhlaydi, lekin qism vazifasini ham aytadi. Asosiylari: <header> yuqori qism (logo, sarlavha), <nav> menyu (havolalar), <main> asosiy kontent (sahifada bitta), <footer> pastki qism (mualliflik, aloqa).

<header> <nav> <main> <footer>
Sahifa ma'noli qismlarga bo'linadi: header, nav, main, footer

Quyida jonli sinab ko'ring (ranglar qismlarni ajratib turibdi, ular oddiy bloklar kabi tepadan pastga joylashadi):

Nega semantik: qidiruv tizimi (Google) va ekran o'quvchi (ko'zi ojizlar uchun) sahifa tuzilmasini shundan tushunadi. Kod ham o'qishga qulayroq bo'ladi. Ko'rinishi <div> bilan bir xil, lekin ma'nosi aniq.

section, article, aside va sahifa tuzilishi

Asosiy kontent (<main>) ichida yana ma'noli teglar bor: <section> mavzuli bo'lim (masalan «So'nggi yangiliklar»), <article> mustaqil, alohida turadigan kontent (bitta maqola yoki blog posti), <aside> yon panel (qo'shimcha havolalar, reklama). To'liq sahifa odatda shunday quriladi: yuqorida header va nav, o'rtada main (ichida article va aside), pastda footer.

<header> <nav> <main> <article> <aside> <footer>
<main> ichida asosiy <article> va yon <aside> joylashadi

Quyida <main> ichidagi <article> va <aside> (yonma-yon joylashuvi CSS bilan berilgan):

Farqi: <section> bir mavzuli bo'lim, <article> esa o'zi mustaqil (uni boshqa saytga ko'chirsangiz ham mazmuni tushunarli qoladi, masalan xabar yoki sharh).

Yaxshi amaliyot (Best Practices)

Professional HTML bir nechta oddiy qoidaga amal qiladi. Ular kodni toza, to'g'ri va hamma uchun qulay qiladi:

  • Teglarni kichik harfda yozing: <p>, <P> emas.
  • Atribut qiymatlarini qo'shtirnoqqa oling: class="box".
  • Har <img> ga mazmunli alt bering.
  • Sahifada faqat bitta <h1> ishlating.
  • Sahifa boshida <!DOCTYPE html>, <html lang="uz">, <meta charset="utf-8"> bo'lsin.
  • <div> o'rniga imkon boricha semantik teglardan foydalaning.
  • Kodni ichma-ich chekinish (indentation) bilan tartibli yozing.
  • Teglarni doim yoping va to'g'ri joylang (ichma-ich tartibda).

Bir xil natija beruvchi ikki kod, lekin sifat farqi katta:

YOMON<DIV><IMG src=rasm>

Katta harf, alt yo'q, qo'shtirnoq yo'q, div ishlatilgan.

YAXSHI<main><img src="rasm.jpg" alt="Tog'">

Kichik harf, alt bor, qo'shtirnoq bor, semantik teg.

Nega muhim: toza kod xatolarni kamaytiradi, boshqalar (va kelajakdagi siz) uni oson o'qiydi, qidiruv tizimida yaxshiroq chiqadi va nogironlar uchun qulay bo'ladi.

Yakuniy loyiha: shaxsiy sahifa

Endi hamma o'rgangan narsangizni birlashtirib, to'liq bir sahifa quramiz. Quyidagi skeletni to'ldiring: menyuga havolalar, asosiy qismga ro'yxat qo'shing.

VazifaSahifada bo'lsin: <header>+<h1>, <nav>+kamida bitta havola (<a href>), <main>+ro'yxat (<ul>/<li>), va <footer>.
Tabriklaymiz! Buni uddalasangiz, HTML asoslarini to'liq o'zlashtirgan bo'lasiz. Endi keyingi qadam, bu sahifani chiroyli qilish uchun CSS o'rganishdir.

Yakuniy amaliy loyiha

Tabriklaymiz, kursning barcha modul mavzularini yakunladingiz! Endi eng muhim qadam, yakuniy loyiha. Quyidagi tugmani bosing, to'liq ekranli kod studiyasi ochiladi: chapda kod yozasiz, o'ng tomonda «Namuna» (siz yasashingiz kerak bo'lgan tayyor sahifa) va «Natija» (sizning jonli natijangiz) yorliqlari bo'ladi. Studio ochilganda kursning qolgan qismi ko'rinmaydi, siz faqat loyihaga e'tibor qaratasiz.

Bu tugma barcha dars mavzularini tugatganingizdan so'ng faollashadi.

Modul testi

YAKUNIY TEST

50 savollik yakuniy test

Yakuniy test

Barcha 8 modul bo'yicha 50 ta savol. Sertifikatga yetish uchun kamida 40/50 to'g'ri javob bering.

SertifikatBarcha 8 modul, amaliy loyiha va yakuniy testni yakunlaganingizda shaxsiy sertifikatingiz shu yerda ochiladi.