# Teraryum Projesi Bölüm 1: HTML'e Giriş

> Sketchnote: [Tomomi Imura](https://twitter.com/girlie_mac)
## Ders Öncesi Test
[Ders öncesi testi](https://ff-quizzes.netlify.app/web/quiz/15)
> Videoyu izleyin
>
> [](https://www.youtube.com/watch?v=1TvxJKBzhyQ)
### Giriş
HTML, yani HyperText Markup Language, webin 'iskeleti'dir. Eğer CSS HTML'inizi 'giydiriyor' ve JavaScript ona hayat veriyorsa, HTML web uygulamanızın bedenidir. HTML'in sözdizimi bile bu fikri yansıtır; "head", "body" ve "footer" gibi etiketler içerir.
Bu derste, sanal teraryumumuzun arayüzünün 'iskeletini' oluşturmak için HTML kullanacağız. Bir başlık ve üç sütun olacak: sürüklenebilir bitkilerin yer aldığı sağ ve sol sütunlar ile cam görünümlü teraryum olacak orta alan. Dersin sonunda, bitkileri sütunlarda görebileceksiniz, ancak arayüz biraz garip görünecek; endişelenmeyin, bir sonraki bölümde arayüze CSS stilleri ekleyerek daha iyi görünmesini sağlayacaksınız.
### Görev
Bilgisayarınızda 'terrarium' adında bir klasör oluşturun ve içine 'index.html' adında bir dosya ekleyin. Bunu Visual Studio Code'da yapabilirsiniz. Teraryum klasörünüzü oluşturduktan sonra yeni bir VS Code penceresi açın, 'klasör aç' seçeneğine tıklayın ve yeni klasörünüze gidin. Explorer panelindeki küçük 'dosya' düğmesine tıklayarak yeni dosyayı oluşturun:

Ya da
Git bash üzerinde şu komutları kullanın:
* `mkdir terrarium`
* `cd terrarium`
* `touch index.html`
* `code index.html` veya `nano index.html`
> index.html dosyaları, bir tarayıcıya bir klasördeki varsayılan dosya olduğunu belirtir; `https://anysite.com/test` gibi URL'ler, `test` adında bir klasör ve içinde `index.html` dosyası bulunan bir klasör yapısı kullanılarak oluşturulabilir; `index.html` URL'de görünmek zorunda değildir.
---
## DocType ve html etiketleri
Bir HTML dosyasının ilk satırı, onun doctype'ıdır. Bu satırın dosyanın en üstünde olması gerektiği biraz şaşırtıcı olabilir, ancak bu satır eski tarayıcılara sayfanın mevcut HTML spesifikasyonuna uygun olarak standart modda işlenmesi gerektiğini söyler.
> İpucu: VS Code'da bir etiketin üzerine gelerek MDN Referans kılavuzlarından kullanımına dair bilgi alabilirsiniz.
İkinci satır, `` etiketinin açılış etiketi olmalı ve hemen ardından kapanış etiketi `` gelmelidir. Bu etiketler, arayüzünüzün kök elemanlarıdır.
### Görev
`index.html` dosyanızın en üstüne şu satırları ekleyin:
```HTML
```
✅ DocType'ı bir sorgu dizesiyle ayarlayarak belirlenebilecek birkaç farklı mod vardır: [Quirks Mode ve Standards Mode](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). Bu modlar, genellikle artık kullanılmayan çok eski tarayıcıları (Netscape Navigator 4 ve Internet Explorer 5) desteklemek için kullanılırdı. Standart doctype deklarasyonuna bağlı kalabilirsiniz.
---
## Belgenin 'head' kısmı
HTML belgesinin 'head' alanı, web sayfanız hakkında [meta veriler](https://developer.mozilla.org/docs/Web/HTML/Element/meta) olarak bilinen önemli bilgileri içerir. Bizim durumumuzda, bu sayfanın işleneceği web sunucusuna şu dört şeyi bildiriyoruz:
- sayfanın başlığı
- sayfa meta verileri, şunları içerir:
- sayfada kullanılan karakter kodlamasını belirten 'karakter seti'
- tarayıcı bilgileri, `x-ua-compatible` dahil, bu IE=edge tarayıcısının desteklendiğini belirtir
- sayfa yüklendiğinde görünüm alanının nasıl davranması gerektiği bilgisi. Görünüm alanını başlangıç ölçeği 1 olarak ayarlamak, sayfa ilk yüklendiğinde yakınlaştırma seviyesini kontrol eder.
### Görev
Açılış ve kapanış `` etiketleri arasına belgenize bir 'head' bloğu ekleyin.
```html
Welcome to my Virtual Terrarium
```
✅ Görünüm alanı meta etiketini şu şekilde ayarlarsanız ne olur: ``? [Görünüm alanı](https://developer.mozilla.org/docs/Web/HTML/Viewport_meta_tag) hakkında daha fazla bilgi edinin.
---
## Belgenin `body` kısmı
### HTML Etiketleri
HTML'de, bir web sayfasının elemanlarını oluşturmak için .html dosyanıza etiketler eklersiniz. Her etiket genellikle bir açılış ve kapanış etiketi içerir, örneğin: `
merhaba
` bir paragrafı belirtir. Arayüzünüzün gövdesini oluşturmak için `` etiketlerini `` etiket çiftinin içine ekleyin; işaretlemeniz şimdi şu şekilde görünür:
### Görev
```html
Welcome to my Virtual Terrarium
```
Artık sayfanızı oluşturmaya başlayabilirsiniz. Genellikle, bir sayfadaki ayrı elemanları oluşturmak için `
` etiketlerini kullanırsınız. Bir dizi `
` elemanı oluşturacağız ve bunlar resimleri içerecek.
### Resimler
Kapanış etiketi gerektirmeyen bir HTML etiketi `` etiketidir, çünkü `src` elemanı, sayfanın öğeyi işlemek için ihtiyaç duyduğu tüm bilgileri içerir.
Uygulamanızda `images` adında bir klasör oluşturun ve [kaynak kod klasöründeki](../../../../3-terrarium/solution/images) tüm resimleri buraya ekleyin; (14 bitki resmi var).
### Görev
Bu bitki resimlerini `` etiketleri arasına iki sütun halinde ekleyin:
```html
```
> Not: Span'lar ve Div'ler. Div'ler 'blok' elemanlar olarak kabul edilirken, Span'lar 'satır içi' elemanlardır. Bu div'leri span'lara dönüştürürseniz ne olur?
Bu işaretlemeyle, bitkiler artık ekranda görünüyor. Ancak oldukça kötü görünüyor, çünkü henüz CSS ile stillendirilmediler; bunu bir sonraki derste yapacağız.
Her resmin, bir resmi göremediğiniz veya işleyemediğiniz durumlarda görünen alternatif bir metni (alt text) vardır. Bu, erişilebilirlik için eklenmesi önemli bir özelliktir. Gelecekteki derslerde erişilebilirlik hakkında daha fazla bilgi edineceksiniz; şimdilik, alt özelliğinin, bir kullanıcı bir resmi herhangi bir nedenle göremediğinde (yavaş bağlantı, src özelliğinde bir hata veya bir ekran okuyucu kullanıyorsa) alternatif bilgi sağladığını unutmayın.
✅ Her resmin aynı alt etikete sahip olduğunu fark ettiniz mi? Bu iyi bir uygulama mı? Neden veya neden değil? Bu kodu geliştirebilir misiniz?
---
## Anlamsal işaretleme
Genel olarak, HTML yazarken anlamlı 'anlamsallık' kullanmak tercih edilir. Bu ne anlama gelir? Bu, HTML etiketlerini, tasarlandıkları veri türünü veya etkileşimi temsil etmek için kullanmanız gerektiği anlamına gelir. Örneğin, bir sayfadaki ana başlık metni bir `
` etiketi kullanılarak yazılmalıdır.
Açılış `` etiketinizin hemen altına şu satırı ekleyin:
```html
My Terrarium
```
Başlıkların `
` ve sırasız listelerin `
` olarak işlenmesi gibi anlamsal işaretleme kullanmak, ekran okuyucuların bir sayfada gezinmesine yardımcı olur. Genel olarak, düğmeler `
` etiketinin üzerine şu işaretlemeyi ekleyin:
```html
```
✅ Bu işaretlemeyi eklemenize rağmen ekranda hiçbir şeyin görünmediğini fark ettiniz mi? Neden?
---
## 🚀Meydan Okuma
HTML'de hala eğlenceli olan bazı eski 'eski' etiketler var, ancak [bu etiketler](https://developer.mozilla.org/docs/Web/HTML/Element#Obsolete_and_deprecated_elements) gibi kullanımdan kaldırılmış etiketleri işaretlemenizde kullanmamalısınız. Yine de, `