Noldan brauzer uchun dastur yozishni o'rganamiz
HTML โ sahifa skeleti
HTML (HyperText Markup Language) โ veb-sahifaning tuzilmasini belgilaydi. Xuddi binoning g'isht-poydevori kabi.
Har bir HTML fayl bir xil tuzilmadan boshlanadi. Bu sahifaning "skeleti" hisoblanadi.
<!-- index.html --> <!DOCTYPE html> <html> <head> <title>Mening sahifam</title> </head> <body> <h1>Salom dunyo!</h1> <p>Bu mening birinchi sahifam.</p> </body> </html>
Bu mening birinchi sahifam.
๐ก Eslab qoling: Teglar juft bo'ladi โ ochiladi va yopiladi. <h1> ochiladi, </h1> yopiladi.
HTML'da ko'p xil teglar bor. Eng ko'p ishlatiladigan teglar bilan tanishamiz.
<!-- Sarlavhalar --> <h1>Eng katta sarlavha</h1> <h2>Kichikroq sarlavha</h2> <h3>Yanada kichik</h3> <!-- Matn --> <p>Oddiy paragraf matni.</p> <strong>Qalin matn</strong> <em>Qiyshiq matn</em> <!-- Havola va rasm --> <a href="https://google.com">Google</a> <img src="rasm.jpg" alt="Rasm tavsifi"> <!-- Ro'yxat --> <ul> <li>Birinchi element</li> <li>Ikkinchi element</li> </ul> <!-- Tartibli ro'yxat --> <ol> <li>HTML o'rganish</li> <li>CSS o'rganish</li> <li>JS o'rganish</li> </ol>
๐ก <img> va <br> teglari yopilmaydi โ ular "yolg'iz" teglar.
<div> โ blok konteyner. Elementlarni guruhlash uchun ishlatiladi. Semantik teglar esa ma'no beradi.
<!-- div โ universal konteyner --> <div class="quti"> <p>Ichidagi matn</p> </div> <!-- Semantik teglar (ma'noli) --> <header>Sayt boshi (logo, menyu)</header> <nav>Navigatsiya menyusi</nav> <main>Asosiy kontent</main> <section>Bo'lim</section> <article>Maqola yoki post</article> <footer>Sayt pastki qismi</footer>
๐ก class atributi orqali CSS da teg ga stil berasiz. Bir xil classdagi barcha elementlarga bir xil stil beriladi.
Formalar foydalanuvchidan ma'lumot olish uchun ishlatiladi โ login, ro'yxatdan o'tish, izlash.
<form> <!-- Matn kiritish --> <label>Ism:</label> <input type="text" placeholder="Ismingiz"> <!-- Email --> <input type="email" placeholder="Email"> <!-- Parol --> <input type="password" placeholder="Parol"> <!-- Tugma --> <button type="submit">Yuborish</button> </form>
CSS โ ko'rinish va bezak
CSS (Cascading Style Sheets) โ HTML elementlarga rang, o'lcham, joylashuv beradi. Kiyim kabi!
CSS'ni 3 xil usulda yozsa bo'ladi. Eng yaxshi usul โ alohida .css fayl.
/* 1. Alohida fayl (ENG YAXSHI) */ /* style.css faylida yozing */ h1 { color: blue; font-size: 32px; } /* HTML da ulash: */ <link rel="stylesheet" href="style.css"> /* 2. style tegi ichida (oddiy) */ <style> p { color: red; } </style> /* 3. To'g'ridan-to'g'ri (kam ishlating) */ <p style="color: green;">Yashil matn</p>
Selektor โ qaysi HTML elementga stil berish kerakligini ko'rsatadi.
/* Teg selektori โ barcha h1 lar */ h1 { color: navy; } /* Class selektori โ class="kartochka" */ .kartochka { background: #fff; } /* ID selektori โ id="bosh" */ #bosh { font-size: 24px; } /* Bir nechta selektor */ h1, h2, h3 { font-weight: bold; } /* Ichki element */ .karta p { color: #666; }
๐ก Class selektori (.) eng ko'p ishlatiladi. ID (#) faqat bir marta ishlatiladigan elementlar uchun.
Eng ko'p ishlatiladigan CSS xususiyatlari.
.karta { /* Ranglar */ color: #333333; /* matn rangi */ background-color: #f5f5f5; /* fon rangi */ /* Shrift */ font-size: 16px; font-weight: bold; font-family: Arial, sans-serif; text-align: center; /* O'lcham */ width: 300px; height: 200px; /* Bo'shliq */ padding: 20px; /* ichki bo'shliq */ margin: 10px; /* tashqi bo'shliq */ /* Chegara */ border: 1px solid #ccc; border-radius: 8px; /* yumaloq burchak */ }
Flexbox elementlarni gorizontal yoki vertikal joylashtirishning eng qulay usuli.
.konteyner { display: flex; gap: 16px; /* elementlar oraliq */ justify-content: center; /* gorizontal markaz */ align-items: center; /* vertikal markaz */ flex-wrap: wrap; /* qatorga o'tish */ } .quti { flex: 1; /* teng kenglik */ background: #4f46e5; color: white; padding: 16px; border-radius: 8px; text-align: center; }
Sichqoncha ustiga kelganda o'zgarish โ tugmalar, kartalar uchun juda foydali.
.tugma { background: #4f46e5; color: white; padding: 12px 24px; border: none; border-radius: 8px; cursor: pointer; transition: all 0.2s; /* silliq o'tish */ } .tugma:hover { /* ustiga kelganda */ background: #3730a3; transform: scale(1.05); /* biroz kattalashtir */ }
JavaScript โ harakat va mantiq
JavaScript sahifani "tirik" qiladi. Tugma bosilganda nima bo'lishini, ma'lumotlarni JS hal qiladi.
O'zgaruvchi โ ma'lumotni saqlash uchun idish. let o'zgaradi, const o'zgarmaydi.
// Matn (String) let ism = "Alisher"; let shahar = 'Toshkent'; // Son (Number) let yosh = 20; let narx = 150000.50; // Mantiqiy (Boolean) let talaba = true; let ishchi = false; // O'zgarmas const PI = 3.14159; // Konsolga chiqarish (F12 โ Console) console.log(ism); // Alisher console.log(yosh); // 20 console.log(talaba); // true
๐ก Brauzerda F12 bosing โ Console tabiga o'ting โ JS kodini sinab ko'ring!
Shart bo'yicha turli kod ishga tushirish โ dasturlashning asosi.
let ball = 75; if (ball >= 90) { console.log("A'lo!"); } else if (ball >= 70) { console.log("Yaxshi"); // bu chiqadi } else if (ball >= 55) { console.log("Qoniqarli"); } else { console.log("Qayta o'qing"); } // Taqqoslash operatorlari: // === teng // !== teng emas // > katta // < kichik // >= katta yoki teng
Bir necha marta takrorlanadigan ishlar uchun sikl ishlatiladi.
// for sikli for (let i = 1; i <= 5; i++) { console.log(i); // 1, 2, 3, 4, 5 } // Massiv (ro'yxat) ustida let mevalar = ["olma", "nok", "uzum"]; for (let meva of mevalar) { console.log(meva); // olma, nok, uzum } // while sikli let son = 0; while (son < 3) { console.log(son); son++; }
Funksiya โ bir necha marta ishlatiladigan kod bloki. Bir marta yoz, ko'p marta chaqir.
// Funksiya yaratish function salomlash(ism) { return "Salom, " + ism + "!"; } // Chaqirish let javob = salomlash("Dilnoza"); console.log(javob); // Salom, Dilnoza! // Arrow funksiya (qisqaroq yozuv) const kvadrat = (n) => n * n; console.log(kvadrat(5)); // 25 console.log(kvadrat(10)); // 100
DOM orqali JS HTML elementlarni topib, o'zgartira oladi. Bu frontendning yuragi!
// Element topish let sarlavha = document.getElementById("bosh"); let tugmalar = document.querySelectorAll(".tugma"); // Matnni o'zgartirish sarlavha.textContent = "Yangi sarlavha!"; // Stilni o'zgartirish sarlavha.style.color = "red"; sarlavha.style.fontSize = "28px"; // Class qo'shish / olib tashlash sarlavha.classList.add("faol"); sarlavha.classList.remove("yashirin"); // Hodisa (tugma bosilganda) let btn = document.getElementById("tugma"); btn.addEventListener("click", function() { console.log("Tugma bosildi!"); });
Eski matn
Kichik loyiha โ Kalkulyator
HTML + CSS + JS uchala texnologiyani birlashtirgan to'liq misol. Har bir qismni tushunishga harakat qiling.
<!-- HTML --> <div class="kalkulator"> <h2>Hisoblash</h2> <input type="number" id="son1" placeholder="1-son"> <input type="number" id="son2" placeholder="2-son"> <div class="tugmalar"> <button onclick="hisobla('+')">+</button> <button onclick="hisobla('-')">โ</button> <button onclick="hisobla('*')">ร</button> <button onclick="hisobla('/')">รท</button> </div> <p id="natija"></p> </div> /* CSS */ .kalkulator { max-width: 300px; padding: 24px; border: 1px solid #e0e0e0; border-radius: 12px; } input { width: 100%; padding: 10px; margin: 8px 0; } .tugmalar { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; } // JavaScript function hisobla(amal) { let a = Number(document.getElementById("son1").value); let b = Number(document.getElementById("son2").value); let jami; if (amal === '+') jami = a + b; else if (amal === '-') jami = a - b; else if (amal === '*') jami = a * b; else if (amal === '/') jami = b !== 0 ? a / b : "0 ga bo'lmaydi"; document.getElementById("natija").textContent = "= " + jami; }
Keyingi o'rganish yo'li