HTML'e Giriş
HTML (HyperText Markup Language), web sayfalarının yapısını oluşturan işaretleme dilidir. Tüm web sitelerinin temelini HTML oluşturur. CSS ile görünüm, JavaScript ile etkileşim eklenir.
HTML Neden Öğrenmelisiniz?
- Web'in Temeli: Tüm web siteleri HTML ile yapılır
- Kolay Öğrenme: Başlamak için en iyi dildir
- Evrensel: Her tarayıcıda çalışır
- Kariyer: Web geliştirme için zorunlu
- CSS ve JS için Temel: Diğer web teknolojilerinin temelidir
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>İlk Web Sayfam</title>
</head>
<body>
<h1>Merhaba Dünya!</h1>
<p>Bu benim ilk web sayfam.</p>
</body>
</html>
HTML Belge Yapısı
| Etiket | Açıklama |
|---|---|
<!DOCTYPE html> |
HTML5 belge tipi bildirimi |
<html> |
Kök eleman, tüm içeriği sarar |
<head> |
Meta bilgileri (başlık, CSS, vb.) |
<title> |
Tarayıcı sekmesinde görünen başlık |
<body> |
Görünen içerik |
! yazıp Tab'a basın - temel şablon oluşur!
Temel HTML Etiketleri
HTML etiketleri, içeriğin türünü ve yapısını belirler. Her etiketin bir açılış ve kapanış kısmı vardır.
Başlık Etiketleri (h1-h6)
<h1>En Büyük Başlık (h1)</h1>
<h2>İkinci Seviye Başlık (h2)</h2>
<h3>Üçüncü Seviye Başlık (h3)</h3>
<h4>Dördüncü Seviye Başlık (h4)</h4>
<h5>Beşinci Seviye Başlık (h5)</h5>
<h6>En Küçük Başlık (h6)</h6>
Canlı Önizleme
En Büyük Başlık (h1)
İkinci Seviye Başlık (h2)
Üçüncü Seviye Başlık (h3)
Paragraf ve Satır Etiketleri
<!-- Paragraf -->
<p>Bu bir paragraftır. Paragraflar metin blokları oluşturur.</p>
<p>Bu başka bir paragraftır. Paragraflar arasında otomatik boşluk bırakılır.</p>
<!-- Satır kırma -->
<p>İlk satır<br>İkinci satır<br>Üçüncü satır</p>
<!-- Yatay çizgi -->
<hr>
<!-- Önceden biçimlendirilmiş metin -->
<pre>
Bu metin
olduğu gibi
görüntülenir.
</pre>
Div ve Span
<!-- Div: Blok seviye konteyner -->
<div class="kart">
<h2>Kart Başlığı</h2>
<p>Kart içeriği burada.</p>
</div>
<!-- Span: Satır içi konteyner -->
<p>Bu cümledeki <span style="color: red;">kırmızı kelime</span> özel.</p>
Metin Biçimlendirme
HTML, metni farklı şekillerde biçimlendirmenizi sağlayan etiketler sunar.
Metin Stil Etiketleri
| Etiket | Açıklama | Görünüm |
|---|---|---|
<strong> |
Kalın (önemli) | Kalın metin |
<b> |
Kalın (görsel) | Kalın metin |
<em> |
İtalik (vurgu) | İtalik metin |
<i> |
İtalik (görsel) | İtalik metin |
<u> |
Altı çizili | Altı çizili |
<s> |
Üstü çizili | |
<mark> |
Vurgulanmış | Vurgulanmış |
<small> |
Küçük metin | Küçük metin |
<sub> |
Alt simge | H2O |
<sup> |
Üst simge | x2 |
<p>Bu <strong>çok önemli</strong> bir mesajdır.</p>
<p>Bu <em>vurgulanan</em> bir kelimedir.</p>
<p>Su formülü: H<sub>2</sub>O</p>
<p>Einstein denklemi: E = mc<sup>2</sup></p>
<p><mark>Sarı vurgulama</mark> ile dikkat çekin.</p>
<p><s>Eski fiyat: 100 TL</s> Yeni fiyat: 75 TL</p>
<!-- Alıntı -->
<blockquote>
"Başarı, hazırlık ile fırsatın buluşmasıdır."
<cite>- Seneca</cite>
</blockquote>
<!-- Kod -->
<p>JavaScript'te <code>console.log()</code> kullanın.</p>
Listeler
HTML'de üç tür liste vardır: sıralı, sırasız ve tanım listeleri.
Sırasız Liste (ul)
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>
<!-- İç içe liste -->
<ul>
<li>Frontend
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>
</li>
<li>Backend
<ul>
<li>Python</li>
<li>Node.js</li>
</ul>
</li>
</ul>
Sıralı Liste (ol)
<ol>
<li>Birinci adım</li>
<li>İkinci adım</li>
<li>Üçüncü adım</li>
</ol>
<!-- Farklı numaralandırma -->
<ol type="A"> <!-- A, B, C -->
<li>Madde A</li>
<li>Madde B</li>
</ol>
<ol type="I"> <!-- I, II, III -->
<li>Madde I</li>
<li>Madde II</li>
</ol>
<ol start="5"> <!-- 5'ten başla -->
<li>Beşinci</li>
<li>Altıncı</li>
</ol>
Tanım Listesi (dl)
<dl>
<dt>HTML</dt>
<dd>HyperText Markup Language - Web sayfalarının yapısı</dd>
<dt>CSS</dt>
<dd>Cascading Style Sheets - Web sayfalarının görünümü</dd>
<dt>JavaScript</dt>
<dd>Web sayfalarına etkileşim katan programlama dili</dd>
</dl>
Bağlantılar (Links)
Linkler, web sayfaları arasında gezinmeyi sağlar. <a> etiketi kullanılır.
<!-- Dış sayfa linki -->
<a href="https://fediatech.com">FediaTech'e Git</a>
<!-- Yeni sekmede aç -->
<a href="https://fediatech.com" target="_blank">Yeni Sekmede Aç</a>
<!-- Aynı sitedeki sayfa -->
<a href="hakkimizda.html">Hakkımızda</a>
<!-- Sayfa içi link (Anchor) -->
<a href="#bolum1">Bölüm 1'e Git</a>
...
<h2 id="bolum1">Bölüm 1</h2>
<!-- E-posta linki -->
<a href="mailto:info@fediatech.com">Bize E-posta Gönderin</a>
<!-- Telefon linki -->
<a href="tel:+905001234567">Bizi Arayın</a>
<!-- Dosya indirme -->
<a href="dosya.pdf" download>PDF İndir</a>
<!-- Görsel link -->
<a href="anasayfa.html">
<img src="banner.jpeg" alt="Ana Sayfa">
</a>
Link Özellikleri
| Özellik | Değer | Açıklama |
|---|---|---|
href |
URL | Bağlantı adresi |
target |
_blank | Yeni sekmede aç |
target |
_self | Aynı sekmede aç (varsayılan) |
title |
Metin | Fare üstüne gelince görünür |
download |
- | Dosyayı indir |
Görseller ve Medya
HTML ile resim, video ve ses dosyalarını sayfanıza ekleyebilirsiniz.
Resimler (img)
<!-- Temel resim -->
<img src="resim.jpg" alt="Resim açıklaması">
<!-- Boyut belirtme -->
<img src="banner.jpeg" alt="Logo" width="200" height="100">
<!-- Dış kaynak resim -->
<img src="https://example.com/resim.jpg" alt="Dış resim">
<!-- Figure ile başlık ekleme -->
<figure>
<img src="manzara.jpg" alt="Güzel manzara">
<figcaption>Kapadokya'dan bir görünüm</figcaption>
</figure>
Video ve Ses
<!-- Video -->
<video width="640" height="360" controls>
<source src="video.mp4" type="video/mp4">
<source src="video.webm" type="video/webm">
Tarayıcınız video etiketini desteklemiyor.
</video>
<!-- Otomatik oynat, döngü, sessiz -->
<video autoplay loop muted>
<source src="arkaplan.mp4" type="video/mp4">
</video>
<!-- Ses -->
<audio controls>
<source src="muzik.mp3" type="audio/mpeg">
Tarayıcınız audio etiketini desteklemiyor.
</audio>
<!-- YouTube embed -->
<iframe width="560" height="315"
src="https://www.youtube.com/embed/VIDEO_ID"
frameborder="0" allowfullscreen>
</iframe>
alt özelliği kullanın!
Erişilebilirlik ve SEO için çok önemlidir.
Tablolar
Tablolar, verileri satır ve sütunlar halinde düzenlemek için kullanılır.
<table border="1">
<!-- Tablo başlığı -->
<thead>
<tr>
<th>Ad</th>
<th>Soyad</th>
<th>Not</th>
</tr>
</thead>
<!-- Tablo gövdesi -->
<tbody>
<tr>
<td>Ali</td>
<td>Yılmaz</td>
<td>85</td>
</tr>
<tr>
<td>Ayşe</td>
<td>Demir</td>
<td>92</td>
</tr>
</tbody>
<!-- Tablo altbilgisi -->
<tfoot>
<tr>
<td colspan="2">Ortalama</td>
<td>88.5</td>
</tr>
</tfoot>
</table>
Hücre Birleştirme
<table border="1">
<tr>
<th colspan="3">Öğrenci Bilgileri</th> <!-- 3 sütun birleştir -->
</tr>
<tr>
<td rowspan="2">Ali</td> <!-- 2 satır birleştir -->
</tr>
<tr>
<td>Matematik</td>
<td>85</td>
</tr>
<tr>
<td>Fizik</td>
<td>90</td>
</tr>
</table>
Formlar
Formlar, kullanıcıdan veri almak için kullanılır. Giriş yapma, kayıt olma, arama gibi işlemler için gereklidir.
<form action="/kayit" method="POST">
<!-- Metin girişi -->
<label for="isim">İsim:</label>
<input type="text" id="isim" name="isim" placeholder="Adınızı girin" required>
<!-- E-posta -->
<label for="email">E-posta:</label>
<input type="email" id="email" name="email" required>
<!-- Şifre -->
<label for="sifre">Şifre:</label>
<input type="password" id="sifre" name="sifre" minlength="6" required>
<!-- Sayı -->
<label for="yas">Yaş:</label>
<input type="number" id="yas" name="yas" min="1" max="100">
<!-- Tarih -->
<label for="dogum">Doğum Tarihi:</label>
<input type="date" id="dogum" name="dogum">
<!-- Gönder butonu -->
<button type="submit">Kayıt Ol</button>
</form>
Input Türleri
| type | Açıklama | Örnek |
|---|---|---|
text |
Metin girişi | İsim, adres |
email |
E-posta | user@example.com |
password |
Şifre (gizli) | ••••• |
number |
Sayı | 1, 100 |
date |
Tarih seçici | 2026-01-15 |
checkbox |
Onay kutusu | 🔹 Kabul ediyorum |
radio |
Tek seçim | 🔹 Erkek 0 Kadın |
file |
Dosya yükleme | Dosya seç |
range |
Kaydırıcı | ¦¦¦?¦¦¦ |
color |
Renk seçici | 🔹 |
Gelişmiş Form Elemanları
<!-- Seçim kutusu -->
<label for="sehir">Şehir:</label>
<select id="sehir" name="sehir">
<option value="">Seçiniz...</option>
<option value="istanbul">İstanbul</option>
<option value="ankara">Ankara</option>
<option value="izmir">İzmir</option>
</select>
<!-- Çoklu satır metin -->
<label for="mesaj">Mesajınız:</label>
<textarea id="mesaj" name="mesaj" rows="5" cols="40"></textarea>
<!-- Onay kutusu -->
<input type="checkbox" id="sozlesme" name="sozlesme" required>
<label for="sozlesme">Sözleşmeyi kabul ediyorum</label>
<!-- Radio butonlar -->
<p>Cinsiyet:</p>
<input type="radio" id="erkek" name="cinsiyet" value="erkek">
<label for="erkek">Erkek</label>
<input type="radio" id="kadin" name="cinsiyet" value="kadin">
<label for="kadin">Kadın</label>
<!-- Fieldset ile gruplama -->
<fieldset>
<legend>İletişim Bilgileri</legend>
<input type="text" placeholder="Telefon">
<input type="email" placeholder="E-posta">
</fieldset>
Semantik HTML
Semantik etiketler, içeriğin anlamını belirtir. SEO ve erişilebilirlik için önemlidir.
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Semantik HTML</title>
</head>
<body>
<!-- Sayfa başlığı -->
<header>
<nav>
<a href="/">Ana Sayfa</a>
<a href="/hakkimizda">Hakkımızda</a>
<a href="/iletisim">İletişim</a>
</nav>
</header>
<!-- Ana içerik -->
<main>
<article>
<h1>Makale Başlığı</h1>
<p>Makale içeriği...</p>
<section>
<h2>Alt Bölüm</h2>
<p>Bölüm içeriği...</p>
</section>
</article>
<aside>
<h3>İlgili Yazılar</h3>
<ul>
<li><a href="#">Yazı 1</a></li>
<li><a href="#">Yazı 2</a></li>
</ul>
</aside>
</main>
<!-- Sayfa altbilgisi -->
<footer>
<p>© 2026 FediaTech</p>
</footer>
</body>
</html>
Semantik Etiketler
| Etiket | Açıklama |
|---|---|
<header> |
Sayfa veya bölüm başlığı |
<nav> |
Navigasyon bağlantıları |
<main> |
Ana içerik (sayfada tek olmalı) |
<article> |
Bağımsız içerik (blog yazısı, haber) |
<section> |
Tematik içerik grubu |
<aside> |
Yan içerik (kenar çubuğu) |
<footer> |
Alt bilgi (telif hakkı, iletişim) |
CSS'e Giriş
CSS (Cascading Style Sheets), HTML elementlerini biçimlendirmek ve sayfa düzenini oluşturmak için kullanılır.
/* Element seçici */
p {
color: #333;
font-size: 16px;
line-height: 1.5;
}
/* Class seçici */
.kart {
background: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
/* ID seçici */
#baslik {
color: blue;
text-align: center;
}