Yüklediğiniz
müfredat dosyası oldukça geniş kapsamlı ve uzun bir web geliştirme eğitimine
ait olduğundan, talimatlarınız doğrultusunda parça parça ele alınarak tasarlanmıştır.
Gereksiz veya anlamsız ifadeler (süre bilgileri, "Önizleme"
ibareleri, ders sayıları) tamamen temizlenmiştir.
Öncelikle
talep ettiğiniz "Öğrenecekleriniz" paragrafının detaylı
açıklaması yapılmış, ardından müfredatın ilk ana bölümleri derinlemesine,
örnekler ve pratik uygulamalarla açıklanmıştır.
🌟
"Öğrenecekleriniz" Bölümünün Detaylı Açıklaması
Bu
kurs, modern web geliştirme dünyasına adım atmak isteyen bir öğrencinin ihtiyaç
duyacağı tüm temel ve ileri düzey yetkinlikleri kazandırmayı hedefler. Kursun
vadettiği kazanımların analizi şu şekildedir:
➡️ BÖLÜM 1:
Başlangıç (Getting Started)
Bu
bölüm, web geliştirme dünyasındaki ilk eğlenceli pratikleri ve tarayıcıların
arkasında dönen bazı temel oyunları keşfetmenizi sağlar.
💡 HTTP Durum Kodları (HTTP Status Codes)
Bir
web tarayıcısı, bir sunucudan web sayfası talep ettiğinde sunucu bu talebe üç
haneli bir sayısal kodla yanıt verir. Bu kodlar iletişimin durumunu gösterir (Örn: 200 OK
başarıyı, 404 Not Found sayfanın bulunamadığını
belirtir).
💡 Haberi Değiştirmek / İncele
Aracı (Making The News)
Modern
tarayıcılar (Google Chrome, Microsoft Edge vb.) web
geliştiricileri için yerleşik araçlar sunar. Bir web sayfasına sağ tıklayıp "İncele"
(Inspect) dediğinizde Elements
(Ögeler) sekmesi açılır. Burada o sayfanın o anki canlı HTML kodlarını
görürsünüz. Bu kodlar üzerinde yapacağınız değişiklikler sadece sizin
tarayıcınızda geçici olarak görüntüye yansır.
💡 Dinozor Oyunu (The Dinosaur Video Game)
Google
Chrome, internet bağlantınız kesildiğinde sizi tamamen çaresiz bırakmamak için
yerleşik bir çevrimdışı oyunu gizli tutar. ekrandaki
pikselli T-Rex dinozoru aslında bir sonsuz koşu
oyunudur.
➡️ BÖLÜM 2:
İnternet ve Web Teknolojilerini Anlamak (Understanding
The Internet & WWW)
Web
tasarımı yapabilmek için kodların üzerinde çalıştığı küresel ağ altyapısını ve
mantığını bilmek gerekir.
💡 İnternetin Tarihi (History of the Internet)
İnternet,
1960'larda ABD Savunma Bakanlığı bünyesindeki DARPA tarafından olası bir
nükleer savaş durumunda iletişimin kesintiye uğramamasını sağlamak amacıyla ARPANET
adıyla geliştirildi. Eski sistem olan "hat anahtarlamalı" (switched) ağlar yerine "paket anahtarlamalı" (packet switching) ağ yapısına
geçildi. Bu yapıda mesajlar küçük paketlere bölünür, ağdaki yönlendiriciler
(routers) yardımıyla en güvenli ve açık yollardan
hedefe ulaştırılır. İlk başarılı mesaj 1969 yılında iletilmiştir.
💡 World Wide
Web (WWW) Tarihi
İnternet
ile Web aynı şey değildir.
İnternet fiziksel altyapıyı (kablolar, uydular, yönlendiriciler, bilgisayarlar)
temsil ederken; World Wide Web (WWW) bu
altyapı üzerinde çalışan bir servistir. WWW, 1980 yılında CERN'de
mühendis olan Tim Berners-Lee tarafından fikir
olarak ortaya atılmış ve 1990'da hayata geçirilmiştir. Temel amacı, internet
üzerindeki metinleri biçimlendirmek ve köprü metinleri (hypertext)
yani tıklanabilir bağlantıları (hyperlinks)
kullanmaktır.
💡 Standartlar ve Dokümantasyon
(Who Controls the Web?)
Web,
tek bir kişinin veya şirketin tekelinde değildir. Gelişimini ve standartlarını
belirleyen bağımsız organizasyonlar vardır:
💡 Tarayıcı Eklentileri ve
Çalışma Mimarisi (How The Web Works)
Web,
İstemci / Sunucu (Client / Server) mimarisine dayanır. Tarayıcınız
(istemci) sunucuya bir istek (request) gönderir,
sunucu da buna yanıt (response) verir. Bu işlem
bittiği an bağlantı kopar. Bu yüzden web "Stateless"
(durumsuz) bir yapıya sahiptir; yani sonraki her istek sıfırdan başlar. Hem
isteğin hem de yanıtın bir Header (Üst bilgi - teknik veriler) ve bir Body (Gövde - sitenin
asıl verisi, HTML kodları) kısmı bulunur.
➡️ BÖLÜM 3: HTML'e Giriş (An Introduction to HTML)
HTML
(HyperText Markup
Language), bir web sayfasının temel iskeletini ve içeriğini oluşturan
işaretleme dilidir.
💡 HTML Sayfasının Anatomisi ve
Terimler
Bir
HTML belgesi en tepede DTD yani Doküman Tipi Tanımı (<!DOCTYPE html>) ile başlar. Bu satır
tarayıcıya "Bu bir HTML5 belgesidir" mesajını verir. Standart bir
HTML sayfasında bulunması zorunlu etiketler şunlardır:
Etiketler
(tags) genellikle bir açılış (<p>) ve bir kapanış (</p>) etiketinden oluşur.
İçerisinde başka etiket barındırmayan, doğrudan işlev gören etiketlere ise kendi
kendini kapatan (self-closing) etiketler denir (Örn: <img src="..."
/> veya <br
/>).
Etiketlerin
birbiri içindeki hiyerarşisini tanımlamak için aile terimleri kullanılır:
<div> <!--
Parent (Ebeveyn) -->
<p>Birinci
paragraf</p> <!-- Child (Çocuk) -->
<p>İkinci
paragraf</p> <!-- Child ve bir üsttekinin Sibling'i
(Kardeşi) -->
</div>
🛠 Uygulama: İlk HTML Sayfası
Kodlaması
Bir
metin editöründe aşağıdaki kod yapısını oluşturup index.html olarak kaydederek tarayıcıda
açabilirsiniz:
<!DOCTYPE
html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Benim İlk Web Sitem</title>
</head>
<body>
<h1>Yazılım Dünyasına Merhaba</h1>
<p>Bu
benim HTML ile yazdığım ilk web sayfasıdır.</p>
</body>
</html>
➡️ BÖLÜM 4: CSS'e Giriş (An Introduction to CSS)
CSS
(Cascading Style Sheets),
HTML ile kurulan iskeletin boyanmasını, konumlandırılmasını ve görsel olarak
şekillenmesini sağlayan stil dilidir.
💡 İlgi Alanlarının Ayrılması
(A Separation of Concerns)
Yazılım
mühendisliğinde kodun kararlı ve sürdürülebilir olması için yapısal işler ile
görsel işlerin birbirinden ayrılması gerekir. Web geliştirmede bu kural katı
bir şekilde uygulanır:
💡 CSS Kural Setleri (Rule-sets)
CSS
kodları belirli bir düzene göre yazılır. Bir HTML etiketini seçen Selector (Seçici), ardından süslü ortak
parantez açan bir Declaration Block (Bildirim Bloğu) ve içerisindeki özellik-değer
çiftlerinden oluşan Declarations
(Bildirimler) bulunur.
/* Örnek Kural Seti */
p
{
color:
blue;
font-size: 16px;
}
💡 CSS'i
HTML'e Bağlamanın Üç Yolu
➡️ BÖLÜM 5:
Geliştirme Ortamını Yapılandırmak (Configuring Your Environment)
Kod
yazarken hız kazanmak ve hataları en aza indirmek için gelişmiş metin
editörleri ve IDE (Bütünleşik Geliştirme Ortamı) yazılımları kullanılır.
Müfredatta öne çıkan araçlar şunlardır:
➡️ BÖLÜM 6: GitHub Kullanımında Uzmanlaşmak (Becoming
Skilled with Github)
GitHub, yazdığınız kodları bulutta saklamanızı, versiyonlamanızı ve dünya genelindeki diğer yazılımcılarla
ortak projeler yürütmenizi sağlayan, yazılımcıların sosyal medyasıdır.
💡 Sürüm Kontrol Sistemi (Git)
Git,
projenizin zaman içindeki tüm değişikliklerini kaydeden bir yazılımdır. Linus Torvalds tarafından 2005
yılında Linux çekirdeğinin geliştirilmesinde kullanılmak üzere açık kaynaklı
olarak üretilmiştir.
💡 Temel Terminal Komutları
(CLI)
GitHub ve Git sistemini arayüz programları yerine Terminal
(Komut Satırı) üzerinden kullanmak profesyonelliğin ilk şartıdır. Bilmeniz
gereken en temel komutlar şunlardır:
💡 Temel Git İş Akışı ve
Komutları
Yerel
bilgisayarınızda bir proje klasörünü Git deposu haline getirmek ve GitHub'a yüklemek için şu sıra takip edilir:
6. git push
-u origin master $\rightarrow$
Kodları GitHub üzerindeki ana dala (master/main) yükler.
Müfredatın sonraki kritik aşamaları olan HTML Essentials
(HTML'in Esasları) ve CSS Essentials (CSS'in Esasları) bölümleriyle derinlemesine devam
ediyoruz. Bu bölümlerde projelerinizin internet ortamında hatasız çalışmasını
sağlayacak temel kuralları, en sık kullanılan etiketleri ve sayfa düzeninin
temel taşı olan Box Model (Kutu Modeli) yapısını uygulamalarıyla öğreneceksiniz.
➡️ BÖLÜM 7: HTML'in
Esasları (HTML Essentials)
Bir web sitesi inşa ederken klasör yapısından başlayarak
tarayıcıların seveceği kuralları uygulamak gerekir.
💡 Dosya ve Klasör Adlandırma
Kuralları (Naming Conventions)
Web sunucuları ve tarayıcılar harf duyarlılığına (case-sensitivity) ve özel karakterlere karşı çok hassastır.
Yanlış adlandırma sitenizin internette kırık linklerle dolmasına neden olur.
·
Küçük
Harf Kuralı:
Tüm dosya ve klasör isimleri tamamen küçük harflerden (a-z) ve rakamlardan (0-9) oluşmalıdır. Sunucularda
büyük harfler senkronizasyon hatası yaratabilir.
·
Boşluk
Bırakmama Kuralı:
Dosya isimlerinde kesinlikle boşluk karakteri kullanılmaz. Boşluk bırakılan
dosyalar sunucu tarafından %20 şeklinde çirkin ve uzun
URL'lere dönüştürülür. Boşluk yerine her zaman tire (-) veya alt çizgi (_) kullanılmalıdır.
·
index.html
Önemi: Bir
web sitesinin ana sayfası her zaman index.html olarak adlandırılmalıdır. Tarayıcılar bir klasöre
girdiğinde varsayılan belge olarak doğrudan bu dosyayı arar ve açar.
💡 Temel HTML Etiketleri
·
<h1> - <h6> (Başlık Etiketleri):
İçeriğin hiyerarşisini ve önem sırasını belirler. <h1> en önemli ana başlıktır ve
her sayfada arama motoru optimizasyonu (SEO) için sadece bir kez
kullanılmalıdır. <h6> ise en küçük alt başlıktır.
·
<p> (Paragraf Etiket):
Blok düzeyinde metin blokları oluşturmak için kullanılır. Her paragraf otomatik
olarak yeni bir satırdan başlar.
·
<ul> ve <ol> (Listeler): Sırasız (unordered - maddeli) listeler için <ul>, sıralı (ordered
- numaralı) listeler için <ol> kullanılır. Listenin her bir ögesi ise <li> (list
item) etiketi içine yazılır.
💡 Etiket Nitelikleri (Tag Attributes)
Etiketlerin işlevlerini genişleten veya onlara veri sağlayan
ek parametrelerdir. Her zaman açılış etiketinin içine isim="değer" şeklinde yazılırlar.
·
Link
(Bağlantı) Elemanı:
<link rel="stylesheet" href="main.css"> $\rightarrow$ CSS dosyasını
sayfaya bağlar.
·
Görsel
Elemanı: <img
src="resim.jpg" alt="Açıklama
metni">
$\rightarrow$ Sayfaya resim ekler. alt niteliği, resim
yüklenemediğinde veya görme engelli bir kullanıcı ekran okuyucu kullandığında
resmin ne olduğunu açıklar (Eğitimde vurgulanan en iyi pratiklerden biridir).
·
Çapa/Bağlantı
Elemanı: <a href="https://google.com"
target="_blank"> $\rightarrow$
Tıklandığında başka bir sayfaya yönlendirir. target="_blank" değeri linkin yeni sekmede açılmasını sağlar.
💡 Göreli (Relative)
ve Mutlak (Absolute) URL'ler
·
Mutlak
(Absolute) URL: Dosyanın internetteki tam adresini belirtir. Protokol (https://) ile başlar. Başka sitelere
link verirken zorunludur. (Örn: https://mozilla.org)
·
Göreli
(Relative) URL: Dosyanın, o an bulunulan mevcut dosyaya göre konumunu
belirtir. Kendi sitenizin içindeki sayfaları veya resimleri bağlarken
performansı artırmak için kullanılır.
o
resimler/logo.png $\rightarrow$ Bulunduğum
klasördeki "resimler" klasörünün içine bak.
o
../index.html $\rightarrow$ Bir üst klasöre çık
ve oradaki index.html
dosyasını bul.
🛠 Uygulama: Temel Etiketler ve
Resim Ekleme
Aşağıdaki kodu yazarak göreli URL mantığını ve temel
etiketlerin tarayıcıda nasıl listelendiğini test edebilirsiniz:
<!DOCTYPE
html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>HTML Esasları Uygulaması</title>
</head>
<body>
<h1>En Sevilen Evcil Hayvanlar</h1>
<p>Aşağıda
dünyada en çok beslenen hayvanların listesi yer almaktadır:</p>
<ul>
<li>Köpekler</li>
<li>Kediler</li>
<li>Kuşlar</li>
</ul>
<!--
Göreli URL ile resim ekleme ve ALT etiketi kullanımı -->
<img src="pup.jpeg" alt="Çubuğu
ağzında tutan sevimli bir köpek yavrusu">
<p>Daha
fazla bilgi için <a href="https://wikipedia.org" target="_blank">Vikipedi'yi</a>
ziyaret edebilirsiniz.</p>
</body>
</html>
➡️ BÖLÜM 8: CSS'in
Esasları (CSS Essentials)
Bu bölüm, web sayfasındaki her bir ögenin aslında geometrik
bir kutudan ibaret olduğunu anlamanızı sağlayan en kritik aşamadır.
💡 Kutu Modeli (Box Model)
Nedir?
Tarayıcılar, HTML'deki her bir
elemanı (ister bir paragraf, ister bir resim olsun)
dikdörtgen bir kutu olarak görür ve işler. Bu kutu dıştan içe doğru 4 katmandan
oluşur:
1.
Margin (Dış Boşluk): Kutunun dış sınırları ile diğer kutular arasındaki
boşluktur. Kutuları birbirinden uzaklaştırmak için kullanılır.
2.
Border (Kenarlık): Kutunun etrafını saran çizgidir. Kalınlığı, rengi ve stili
(düz, kesikli vb.) değiştirilebilir.
3.
Padding (İç Boşluk): Kutunun kenarlığı (border) ile
içindeki asıl içerik arasındaki boşluktur. İçeriğin kenarlara yapışmasını
engeller.
4.
Content
(İçerik):
Metnin, resmin veya logonun yer aldığı en içteki alandır (width ve height mülkleri doğrudan burayı etkiler).
💡 Düzen Kıran Tuzak ve Çözüm: box-sizing: border-box
Varsayılan olarak tarayıcılar bir kutunun toplam genişliğini
hesaplarken Genişlik (Width) + Padding + Border formülünü kullanır.
·
Tuzak: Eğer bir kutuya width: 400px verir, ardından padding: 20px ve border: 10px eklerseniz, o kutunun tarayıcıdaki gerçek kapladığı alan 460px
olur (400 + 20+20 + 10+10). Bu durum, yan yana koymak istediğiniz kutuların
sığmayarak aşağı kaymasına ve sayfa düzeninizin (layout)
tamamen kırılmasına neden olur.
·
Çözüm: CSS kodunun en tepesine
evrensel seçiciyi (*)
kullanarak box-sizing: border-box; kuralı eklenir. Bu kural
tarayıcıya şunu söyler: "Ben genişliği 400px verdiysem, padding ve border'ı bu 400px'in
içinden kıs, kutunun dış boyutunu asla büyütme."
💡 Display
(Görünüm) Mülkü
HTML elemanlarının sayfada nasıl davranacağını belirler:
·
display: block: Eleman bulunduğu satırı
tamamen kaplar. Kendisinden sonra gelen elemanı bir alt satıra zorlar. Genişlik
ve yükseklik değerlerine saygı duyar. (Örn: <div>, <h1>, <p>)
·
display: inline: Eleman sadece içindeki
içerik kadar yer kaplar. Yan yana dizilmeye izin verir. En kritik kural:
inline elemanlara yukarı-aşağı margin/padding verilemez, width ve height (genişlik/yükseklik) değerleri tanımlanamaz. (Örn: <a>,
<span>)
·
display: inline-block:
Hem inline gibi yan yana dizilir hem de
block gibi genişlik, yükseklik ve tüm yönlerden boşluk
değerlerini başarıyla uygular. Menü yapımlarında sıkça tercih edilir.
·
display: none: Elemanı sayfadan tamamen
gizler. Eleman sayfada hiç yokmuş gibi davranır ve kapladığı alan boşa çıkar.
🛠 Uygulama: Kutu Modeli ve
Düzen Koruma Simülasyonu
Aşağıdaki CSS ve HTML yapısı, border-box kuralının sitenizin düzenini
nasıl koruduğunu canlı olarak gösterir:
<!DOCTYPE
html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Kutu Modeli Deneyimi</title>
<style>
/* Tüm elemanlar için düzen koruma
kuralını aktif ediyoruz */
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
.kutu-kapsayıcı
{
background-color: #f0f0f0;
padding: 20px;
}
.ornek-kutu
{
width: 300px;
height: 150px;
background-color: deepskyblue;
color: white;
/* Kutu Modeli Katmanları */
border: 10px solid royalblue; /* Kenarlık */
padding: 20px; /* İç boşluk */
margin: 30px auto; /* Dış boşluk: Üst-alt 30px,
sağ-sol otomatik (ortalar) */
/* Görsel Şekillendirme */
border-radius: 15px; /* Kenarları yuvarlama */
}
</style>
</head>
<body>
<div
class="kutu-kapsayıcı">
<!--
box-sizing: border-box
sayesinde bu kutunun dış genişliği
ekstra padding ve border'a rağmen tam
olarak 300px kalacaktır. -->
<div
class="ornek-kutu">
Kutu Modeli Katmanlarını
İnceliyorsunuz.
</div>
</div>
</body>
</html>
Web sayfalarının hiyerarşik gücünü belirleyen CSS Specificity (Özgünlük/Ağırlık Hesaplama), modern arama
motorlarının sitenizi anlamasını sağlayan Structuring
Documents (Anlamsal HTML5) ve yazı tiplerini
canlandıran Formatting Text
(Metin Biçimlendirme) bölümleriyle derinlemesine devam ediyoruz.
➡️ BÖLÜM 9: CSS Seçici
Ağırlıkları ve Öncelik Sırası (CSS Order & Specificity)
Büyük projelerde, birden fazla CSS kuralı aynı HTML
etiketini hedef aldığında tarayıcılar hangisini uygulayacağını şaşırmaz. Özgünlük
puanı (Specificity) en yüksek olan kural kazanır.
Eğer puanlar tamamen eşitse, en son yazılan (en alttaki) kural geçerli
olur.
💡 Özgünlük Hesaplama Formülü
Tarayıcılar kuralları karşılaştırırken soldan sağa doğru
işleyen 4 basamaklı bir puanlama matrisi (0, 0, 0, 0) kullanır:
1.
Satır
İçi Stiller (Inline Styles)
→ [1, 0, 0, 0] : HTML etiketinin içine
yazılan stillerdir (style="..."). Neredeyse tüm kuralları
ezer.
2.
ID
Seçiciler → [0, 1, 0, 0] : Sayfada tek bir benzersiz
ögeyi seçen yapılardır (#logo,
#nav).
3.
Class
(Sınıf), Nitelik (Attribute) ve Sözde Sınıf (Pseudo-class) Seçiciler → [0, 0, 1, 0] : Yeniden kullanılabilir
yapılardır (.menu, [href], :hover).
4.
Element
(Etiket) Seçiciler → [0, 0, 0, 1] : Doğrudan etiket adlarıdır (h1, p, div).
·
Evrensel
Seçici (*)
→ [0, 0, 0, 0] : Hiçbir ağırlığı yoktur, en
zayıf seçicidir.
·
⚠️ !important Kuralı: Bir CSS değerinin sonuna
eklendiğinde (color: red
!important;), özgünlük kurallarını tamamen devre dışı bırakır ve o kodu
kesin olarak kazandırır. Ancak kod yönetimini imkansız
hale getirdiği için acil durumlar dışında kesinlikle kullanılmamalıdır.
🛠 Uygulama: Kim Kazanacak? (Ağırlık
Deneyi)
Aşağıdaki kod yapısında aynı <p> etiketine 4 farklı kural
uygulanmıştır. Puan hesaplamasını inceleyin:
<!DOCTYPE
html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>CSS Öncelik Deneyi</title>
<style>
/* Kural 1:
Sadece etiket seçici -> Puan: [0,
0, 0, 1] */
p { color: orange; }
/* Kural 2:
Class seçici -> Puan: [0,
0, 1, 0] */
.metin { color: blue; }
/* Kural 3:
ID seçici -> Puan: [0,
1, 0, 0] */
#ozel-paragraf { color: green; }
/* Kural 4:
Etiket + Class birleşimi -> Puan: [0,
0, 1, 1] */
p.metin
{ color: purple; }
/* Puan Karşılaştırması:
[0, 1, 0, 0] (ID) > [0,
0, 1, 1] (Etiket+Class)
> [0, 0, 1, 0] (Class) > [0,
0, 0, 1] (Etiket)
Bu durumda paragrafın rengi YEŞİL
olacaktır. */
</style>
</head>
<body>
<!--
Eğer buraya style="color:
red;" yazsaydık satır içi stil [1,0,0,0] puanla
yeşili de ezecekti -->
<p
id="ozel-paragraf" class="metin">Bu yazının rengi ne olacak?</p>
</body>
</html>
➡️ BÖLÜM 10: Metin
Biçimlendirme (Formatting Text)
Yazıların boyutu, aralıkları ve font aileleri bir web
sitesinin okunabilirliğini doğrudan belirler. Modern web tasarımında font
yapılandırması oldukça hassas bir konudur.
💡 Kritik Font Mülkleri ve
Birimleri
·
font-family: Yazı tipini belirler.
Tarayıcıya alternatifli bir liste sunulmalıdır. Listenin en sonuna her zaman
yedek genel aile ismi (serif, sans-serif veya monospace) yazılmalıdır. Eğer kullanıcının bilgisayarında özel font
yüklü değilse tarayıcı bu yedeği açar.
·
font-size Birimleri: Kesinlikle
sabit piksel (px) yerine esnek birimler kullanılmalıdır.
o
rem (Root
EM): Kullanıcının tarayıcı varsayılan yazı boyutuna (genelde 16px)
oranlanır. 1rem = 16px, 2rem = 32px yapar. Görme engelli bir kullanıcı tarayıcı fontunu
büyüttüğünde siteniz de onunla birlikte büyür.
o
vw (Viewport
Width): Ekran genişliğinin yüzde 1'ini temsil
eder. Akıllı telefon ekranlarında metinlerin otomatik küçülmesini sağlar.
·
line-height (Satır Yüksekliği):
Okunabilirliği artırmak için metin satırları arasındaki dikey boşluğu ayarlar.
Birimsiz sayısal değer olarak verilmesi (Örn: 1.5) en iyi pratiktir.
·
letter-spacing (Kerning):
Karakterlerin (harflerin) kendi arasındaki yatay mesafeyi belirler.
💡 Performans ve Google Fonts
Sitenize harici yazı tipleri yüklemek (Google Fonts vb.) performansa bir maliyet getirir. Kullanıcı
sitenizi açtığında o font dosyasını indirmek zorunda kalır. Kural:
Sadece ihtiyacınız olan font-weight (kalınlık) değerlerini (Örn: Sadece 400 ve 700) seçip projeye eklemelisiniz. Tüm
kalınlıkları yüklemek site hızını ciddi ölçüde düşürür.
➡️ BÖLÜM 11: Doküman Yapısı ve
Anlamsal HTML (Structuring Documents)
Sadece <div> etiketlerini üst üste yığarak web sitesi yapma hastalığına
sektörde "Div Çorbası" (Div Soup / Divitis)
denir. Tarayıcılar ve ekran okuyucular düz bir <div> etiketinin ne amaçla
koyulduğunu anlayamaz. Bu yüzden HTML5 ile gelen Semantic
(Anlamsal) etiketler kullanılmalıdır.
💡 Anlamsal Yapı Taşları ve
Kuralları
·
<header>: Sitenin veya bir bölümün en
üstündeki giriş, logo ve ana navigasyon alanını temsil eder.
·
<nav>: Sitenin ana menüsünü, bağlantı
listelerini sarmalamak için zorunludur. Ekran okuyucular kör kullanıcılara
menünün yerini bu etiket sayesinde söyler.
·
<main>: Sayfanın asıl ve benzersiz
ana içeriğini barındırır. Bir HTML belgesinde sadece bir adet
kullanılmalıdır. Diğer sayfalarda tekrarlanan yan menü veya logoları içermez.
·
<article>: Kendi başına bağımsız
olarak paylaşılabilen, gazete haberi, forum mesajı veya blog yazısı gibi
içerikleri ifade eder.
·
<section>: Sayfa içindeki tematik
bölümleri (Örn: "Hizmetlerimiz",
"Hakkımızda" alanları) gruplar. Genellikle içinde bir başlık
barındırır.
·
<aside>: Ana içerikle dolaylı olarak
ilişkili, reklam alanları, yazar biyografisi gibi yan menü (sidebar)
bileşenleridir.
·
<footer>: Sayfanın veya bir bölümün
en altındaki telif hakkı, iletişim bilgileri ve sosyal medya linklerini tutan
kısımdır.
🛠 Uygulama: Kusursuz Bir HTML5
Sayfa İskeleti
Aşağıdaki kod yapısı, modern standartlara tam uyumlu, arama
motorlarının (SEO) en sevdiği sayfa mimarisini gösterir:
<!DOCTYPE
html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Anlamsal HTML5
Yapısı</title>
<style>
body {
font-family: 'Segoe
UI', sans-serif;
line-height: 1.6; /* Rahat okunabilir satır aralığı */
font-size:
1rem; /* Esnek
rem birimi */
}
</style>
</head>
<body>
<!--
Sitenin Üst Alanı -->
<header>
<div
class="logo">Yazılım Akademisi</div>
<nav>
<a
href="#anasayfa">Ana Sayfa</a>
|
<a
href="#kurslar">Kurslar</a>
|
<a
href="#iletisim">İletişim</a>
</nav>
</header>
<!--
Sitenin Benzersiz Ana İçeriği -->
<main>
<!--
Bağımsız Blog Yazısı -->
<article>
<h1>Neden HTML5
Kullanmalıyız?</h1>
<p>HTML5,
web sayfalarımızın arama motorları tarafından daha kolay taranmasını
sağlar.</p>
<!--
Yazı İçindeki Tematik Bölüm -->
<section>
<h2>Erişilebilirlik Avantajları</h2>
<p>Ekran
okuyucular anlamsal etiketleri doğrudan algılayabilir.</p>
</section>
</article>
</main>
<!--
Yan İçerik Alanı -->
<aside>
<h3>Popüler Yazılar</h3>
<p>CSS Seçici Ağırlıkları Nasıl Hesaplanır?</p>
</aside>
<!--
Sitenin En Alt Alanı -->
<footer>
<p>© 2026 Yazılım Akademisi. Tüm hakları saklıdır.</p>
</footer>
</body>
</html>
Web tasarımının en heyecan verici ve modern dönüm noktası
olan Layout Fundamentals (Düzen Temelleri),
sayfa düzenlemede devrim yaratan Layout with Flexbox (Esnek Kutu Düzeni)
ve sitelerin tüm cihazlara uyum sağlamasını sağlayan Media Queries (Mobil Uyumlu Tasarım) bölümleriyle
derinlemesine devam ediyoruz.
➡️ BÖLÜM 12: Düzen Esasları (Layout Fundamentals)
Web tasarımında nesnelerin ekranda nasıl konumlanacağını anlamak
için elemanların varsayılan akış davranışlarını değiştirmeyi bilmek gerekir.
💡 Elemanların Blok ve Satır
İçi Davranışları
·
Block (Blok) Elemanlar: Varsayılan olarak bulundukları satırı tamamen kaplarlar (width: 100%). Kendilerinden sonra gelen elemanları alt satıra kaymaya
zorlarlar. (Örn: <div>, <p>,
<h1>)
·
Inline (Satır İçi) Elemanlar: Sadece içlerindeki metin veya içerik kadar yer kaplarlar.
Yan yana dizilebilirler. En önemli kural: Üst ve alt yönlerden boşluk (margin/padding) uygulayamazlar,
genişlik ve yükseklik alamazlar. (Örn: <a>, <span>)
·
Inline-Block Elemanlar: Hem inline
gibi yan yana dizilirler hem de block gibi genişlik, yükseklik ve
dikey boşlukları başarıyla uygularlar. (Örn: Yatay
menü linkleri)
🛠 Uygulama: Elemanları Yan
Yana Dizme Tekniği
Eski web tasarımında elemanları yan yana getirmek büyük bir
dertti. Aşağıdaki uygulama, varsayılan olarak alt alta dizilen blok düzeyindeki
<div> etiketlerini inline-block
kullanarak nasıl yan yana dizebileceğimizi gösterir:
<!DOCTYPE
html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Düzen Temelleri Uygulaması</title>
<style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
.menu-listesi
li {
/* li
etiketleri varsayılan olarak block'tur ve alt alta
dizilir.
inline-block yaparak onları yan yana dizilebilir birer kutuya
çeviriyoruz. */
display: inline-block;
width: 120px;
padding: 10px;
background-color: #333;
color: white;
text-align: center;
margin-right: 5px;
}
.menu-listesi
li:hover {
background-color: deepskyblue;
cursor: pointer; /* Fare
imlecini el işaretine çevirir */
}
</style>
</head>
<body>
<ul class="menu-listesi">
<li>Ana Sayfa</li>
<li>Hizmetler</li>
<li>Hakkımızda</li>
<li>İletişim</li>
</ul>
</body>
</html>
➡️ BÖLÜM 13: Flexbox ile Düzen Tasarımı (Layout
with Flexbox)
Müfredatta en çok üzerinde durulan konulardan biri olan Flexbox, tek boyutlu sayfa düzenlerini (satır veya
sütun) yönetmek için geliştirilmiş muazzam güçlü bir CSS modelidir. Bir elemana
display: flex; uyguladığınız an, o eleman
bir Flex Container
(Esnek Kapsayıcı) olur, onun içindeki tüm birinci derece çocuk etiketler
ise otomatik olarak Flex Item (Esnek Öge) haline gelir.
💡 Ana Eksen ve Çapraz Eksen
Mantığı
Flexbox'ı çözmenin sırrı eksenleri
anlamaktır:
·
flex-direction: row (Varsayılan): Ana
eksen yatay (soldan sağa), çapraz eksen dikey (yukarıdan aşağıya) olur.
·
flex-direction: column: Ana eksen dikey (yukarıdan
aşağıya), çapraz eksen yatay (soldan sağa) olur.
💡 Kapsayıcı (Container) Mülkleri
·
flex-wrap: Kutuların satıra
sığmadığında alt satıra geçip geçmeyeceğini belirler. wrap değeri verildiğinde taşan kutular alta kayar, düzen
kırılmaz.
·
justify-content: Ögeleri Ana Eksen (Main Axis) üzerinde hizalar.
o
center: Tam ortalar.
o
space-between: İlk kutuyu en sola, son
kutuyu en sağa yaslar, diğerlerini araya eşit dağıtır.
o
space-around: Kutuların sağ ve sol
taraflarına eşit boşluklar dağıtır.
·
align-items: Ögeleri Çapraz Eksen
(Cross Axis) üzerinde dikey olarak hizalar. (flex-start, flex-end, center, stretch)
💡 Öge (Item)
Mülkleri
·
flex-grow: Boş kalan alanın kutular
tarafından hangi oranda paylaşılıp büyütüleceğini belirler. Sayısal değer alır.
·
order: HTML kod sırasını bozmadan,
kutuların ekrandaki görünüm sırasını değiştirmeyi sağlar (Örn:
order: -1 olan kutu en başa geçer).
🛠 Uygulama: Flexbox ile Kusursuz Hizalama ve Ortallama
Geçmişte web tasarımdaki en büyük kabus,
bir kutunun içindeki metni veya logoyu hem yatayda hem dikeyde tam ortalamaktı.
Flexbox ile bu işlem sadece 3 satır sürer:
<!DOCTYPE
html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Flexbox
Mucizesi</title>
<style>
.dis-kapsayici {
width: 100%;
height: 300px;
background-color: #f4f4f4;
/* Flexbox'ı
aktif ediyoruz */
display: flex;
/* Yatay eksende tam ortala */
justify-content: center;
/* Dikey eksende tam ortala */
align-items: center;
}
.ic-kutu
{
width: 150px;
height: 100px;
background-color: crimson;
color: white;
text-align: center;
line-height: 100px; /* Metni dikeyde ortalamak için kutu
yüksekliği kadar verdik */
font-weight: bold;
}
</style>
</head>
<body>
<div
class="dis-kapsayici">
<div
class="ic-kutu">TAM ORTADAYIM!</div>
</div>
</body>
</html>
➡️ BÖLÜM 14: Medya Sorguları ve
Mobil Uyum (Media Queries)
Masaüstü bilgisayarlar, tabletler ve akıllı telefonlar...
Web sitenizin tüm bu farklı ekran boyutlarında kusursuz görünmesini sağlayan
teknoloji Media Queries (Medya Sorguları)
sistemidir. Sitenizin görünümünün değiştiği ekran genişliği sınırlarına Breakpoint (Kırılma Noktası) denir.
💡 Mobil Öncelikli Tasarım
(Mobile-First Design)
Eğitimde şiddetle tavsiye edilen modern yaklaşım budur. CSS
yazmaya başlarken önce sitenin en küçük ekranlı akıllı telefonlardaki halini
kodlarsınız. Ardından medya sorguları ile ekran büyüdükçe (min-width kullanarak) tablet ve masaüstü görünümlerini katman katman eklersiniz. Bu yaklaşım kod karmaşasını azaltır ve
mobil performansı uçurur.
·
min-width: 768px → "Ekran genişliği
en az 768px ve daha yukarısı olduğunda bu kodları devreye al."
(Genelde tablet sınırı)
·
min-width: 1024px → "Ekran genişliği
en az 1024px ve yukarısı olduğunda bu kodları devreye al." (Masaüstü
sınırı)
⚠️ Meta Viewport
Etiketinin Hayati Önemi
HTML sayfanızın <head> kısmına <meta name="viewport" content="width=device-width, initial-scale=1.0"> kodunu eklemezseniz, yazdığınız hiçbir medya sorgusu mobil
cihazlarda çalışmaz. Çünkü akıllı telefonlar sitenizi devasa bir masaüstü
ekranı gibi simüle edip küçülterek (font-boosting
yaparak) açmaya çalışır. Bu etiket tarayıcıya şunu emreder: "Sitenin viewport (görünüm penceresi) genişliğini, cihazın kendi
fiziksel ekran genişliğine eşitle!"
🛠 Uygulama: Ekrana Göre Renk
Değiştiren Duyarlı Sayfa
Aşağıdaki kodları tarayıcınızda açıp, tarayıcı penceresini
sağ kenarından tutup daraltıp genişleterek arka plan renginin kırılma
noktalarında nasıl tepki verdiğini canlı olarak izleyebilirsiniz:
<!DOCTYPE
html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<!--
Mobil uyum için bu etiket ZORUNLUDUR -->
<meta name="viewport" content="width=device-width,
initial-scale=1.0">
<title>Responsive
Tasarım Testi</title>
<style>
/* Varsayılan Kodlar: Mobil Öncelikli
(Küçük Ekranlar İçin) */
body {
background-color: lightcoral;
font-size:
14px;
padding: 20px;
color: white;
font-family: sans-serif;
}
body::after {
content: "
Şu an: Mobil Ekran (Dar)";
font-weight: bold;
}
/* Kırılma Noktası 1:
Ekran Genişliği 768px ve Üzeri Olduğunda (Tablet) */
@media (min-width:
768px) {
body {
background-color: seagreen;
font-size:
18px;
}
body::after {
content: "
Şu an: Tablet Ekranı (Orta)";
}
}
/* Kırılma Noktası 2:
Ekran Genişliği 1024px ve Üzeri Olduğunda (Masaüstü
Bilgisayar) */
@media (min-width:
1024px) {
body {
background-color: royalblue;
font-size:
22px;
}
body::after {
content: "
Şu an: Masaüstü Ekranı (Geniş)";
}
}
</style>
</head>
<body>
<h1>Duyarlı (Responsive)
Sayfa Deneyimi</h1>
</body>
</html>
Web geliştirmede sizi sıradan bir kodlayıcıdan profesyonel
bir zanaatkara dönüştürecek olan Graphics & SVGs
(Vektörel Grafikler), sitelerin tarayıcı sekmelerindeki kimliği olan Favicon Yapılandırması ve yazılmış eski
kodları modern standartlara kavuşturma sanatı olan Refactor
Challenge (Kod İyileştirme) bölümleriyle derinlemesine devam ediyoruz.
➡️ BÖLÜM 15: Grafik Yönetimi ve
Çözünürlükten Bağımsız SVGs (Graphics)
Web sitelerinde kullanılan görseller temel olarak ikiye
ayrılır: Raster/Bitmap (Piksel Tabanlı)
ve Vector (Vektörel) grafikler.
Müfredatta, modern webin vazgeçilmezi olan SVG
teknolojisi üzerinde detayla durulmaktadır.
💡 Piksel Tabanlı Görseller ile
Vektörel Görsellerin Farkı
·
Bitmap/Raster (JPG, PNG, GIF): Renkli piksellerden oluşan bir matristir. Görseli
büyüttüğünüzde pikseller sayılır, kenarlar bulanıklaşır ve görüntü kalitesi
bozulur (degrade olur). Dosya boyutları genellikle
büyüktür.
·
Vector (SVG - Scalable
Vector Graphics): Matematiksel formüller, koordinatlar, çizgiler ve
eğrilerden oluşan XML tabanlı bir işaretleme dilidir. Bir SVG görselini ne
kadar büyütürseniz büyütün, kalitesi asla bozulmaz, piksellenme
yapmaz. Dosya boyutları birkaç kilobayt (KB) düzeyindedir ve inanılmaz derecede
hafiftir.
💡 Font Awesome
ve Performans Sırrı
Font Awesome, web sitelerine hızlıca ikon
eklemek için kullanılan popüler bir kütüphanedir. Ancak tüm Font Awesome kütüphanesini (yaklaşık 92.7 KB veri) siteye dahil
etmek büyük bir performans israfıdır. Sitede sadece 3-5 tane ikon
kullanılıyorsa, tüm yazı tipi scriptini yüklemek
yerine ihtiyacımız olan ikonların SVG kodlarını kütüphaneden ayıklayarak (extract ederek) doğrudan HTML'e
gömmek en iyi performans pratiğidir.
💡 SVG <path> Elemanı ve Çizim Komutları
SVG içindeki en güçlü eleman <path> (yol) etiketidir. Bu etiket,
sanal bir kalemin ekran üzerinde nasıl hareket edeceğini belirleyen d="..." (draw/çiz)
niteliğini alır:
·
M (X Y):
Kalemi kaldırmadan belirtilen X ve Y koordinatına git (Move
to).
·
L (X Y):
Mevcut konumdan belirtilen X ve Y noktasına düz bir çizgi çek (Line to).
·
Z:
Çizimi bitir ve kalemi başladığın ilk noktaya geri götürerek yolu kapat (Close Path).
·
⚠️ Büyük/Küçük Harf Farkı:
Komutların BÜYÜK harfle yazılması Mutlak (Absolute)
koordinatları, küçük harfle yazılması ise o an bulunulan noktaya göre Göreli
(Relative) mesafeleri ifade eder.
💡 Modüler SVG Tasarımı: <symbol> ve <use>
Bir ikon veya logoyu sayfa içinde birden fazla yerde
kullanacaksanız, SVG kodunu defalarca kopyalamamalısınız. HTML'in
en tepesinde <symbol> etiketi ile ikonun kimliğini
(id) tanımlayıp gizleyebilir,
sayfa içinde ihtiyaç duyulan yerlerde <use href="#id"> diyerek çağırabilirsiniz. Bu yöntem kod tekrarını önler ve
tarayıcı tarafından önbelleğe (cache) alınabilir.
Ayrıca Microsoft tarayıcılarıyla JavaScript eklentisine ihtiyaç duymadan tam
uyumlu çalışır.
🛠 Uygulama: Temel SVG Çizimi
ve CSS ile Renklendirme
Aşağıda, harici hiçbir görsel dosyasına ihtiyaç duymadan,
tamamen kodla tarayıcıda kusursuz bir mavi üçgen çizen ve üzerine gelindiğinde
renk değiştiren SVG uygulamasını inceleyebilirsiniz:
<!DOCTYPE
html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>SVG ve CSS Uygulaması</title>
<style>
.vektorel-ikon
{
width: 100px;
height: 100px;
transition: all 300ms
ease; /* Yumuşak geçiş efekti */
}
/* SVG elemanlarında geleneksel 'background-color' yerine 'fill' (iç dolgu),
'border' yerine 'stroke' (çizgi rengi) mülkleri kullanılır. */
.vektorel-ikon
path {
fill: deepskyblue;
stroke: royalblue;
stroke-width: 5; /* Çizgi kalınlığı */
}
/* Fare üzerine geldiğinde ikonu
tamamen CSS ile manipüle edebiliyoruz */
.vektorel-ikon:hover path {
fill: crimson;
stroke: darkred;
}
</style>
</head>
<body>
<!--
100x100 piksellik bir koordinat düzlemi (viewBox)
oluşturuyoruz -->
<svg class="vektorel-ikon" viewBox="0 0 100 100">
<!--
Çizim Başlıyor:
M 50 10 -> Kalemi X:50, Y:10 noktasına
götür
L 90 90 -> Sağa ve aşağıya doğru çizgi çek
L 10 90 -> Sola doğru düz çizgi çek
Z -> Çizimi başlangıç noktasına
bağlayarak kapat -->
<path d="M
50 10 L 90 90 L 10 90 Z" />
</svg>
</body>
</html>
➡️ BÖLÜM 16: Sekme İmzası
Yapılandırması (Favicon)
Favicon (Favorite
Icon), web sitenizin tarayıcı sekmelerinde, yer
imlerinde (bookmarks) ve mobil cihazların ana
ekranlarında sitenizi temsil eden küçük logodur.
💡 Profesyonel Favicon Üretim Aşamaları
1.
Görsel
Hazırlığı:
Adobe Illustrator veya benzeri bir grafik
programında, en az 600 x 600 piksel çözünürlükte kare bir PNG görseli
oluşturulur.
2.
Çoklu
Çözünürlük Çıktısı:
Sadece tek bir favicon.ico dosyası modern cihazlar için yeterli değildir. Sitenizin
hem iPhone (Apple Touch Icon),
hem Android (Manifest JSON), hem de yüksek
çözünürlüklü masaüstü ekranlarda kusursuz görünmesi için görsellerin farklı
boyutlara (16x16, 32x32, 180x180 vb.) bölünmesi gerekir. Eğitimde bu işlem için
realfavicongenerator.net aracı önerilmektedir.
3.
Önbellek
(Cache) Kırma Tuzağı: Tarayıcılar favicon dosyalarını çok agresif bir şekilde önbelleğe alır.
Sitenizin logosunu değiştirdiğinizde eski logoda ısrar edebilirler.
o
Çözüm: HTML bağlantısının sonuna
bir versiyon parametresi (Query String) eklenerek
tarayıcının yeni dosyayı indirmesi zorlanır. (Örn: <link rel="icon" href="favicon.ico?v=2">)
➡️ BÖLÜM 17: Kod İyileştirme
Sanatı (Refactor Challenge)
Refactoring (Kodun Yeniden
Yapılandırılması),
mevcut bir kodun dışsal/görsel davranışını ve işlevini değiştirmeden, arka
plandaki yazım kalitesini, performansını ve okunabilirliğini artırma sürecidir.
💡 Bir Web Sayfasında Neler Refaktör Edilir? (İyileştirme Kontrol Listesi)
Müfredatta yer alan pratik senaryoda, eski standartlarla
yazılmış bir sitenin modern yapıya kavuşturulması için şu adımlar uygulanır:
·
DRY
(Don't Repeat Yourself)
Prensibi:
CSS dosyasında kendisini tekrar eden kurallar tespit edilir. Aynı mülkleri alan
farklı seçiciler virgülle birleştirilerek tek bir kural setine indirgenir.
·
Div Soup (Div
Çorbası) Temizliği:
Sayfayı sadece tasarımsal olarak bölmek için kullanılan anlamsız <div> etiketleri ayıklanır.
Yerlerine bir önceki bölümlerde öğrendiğimiz <header>, <nav>, <main>, <article> ve <footer> gibi anlamsız olmayan,
anlamsal (semantic) HTML5 etiketleri yerleştirilir.
·
Sayfa
Düzeni Dönüşümü:
Eski yöntem olan satır içi bloklar (inline-block) veya kaydırma mülkleri (float) temizlenir. Menü ve sayfa yerleşimleri modern, esnek ve
hatasız çalışan Flexbox mimarisine geçirilir.
·
Görsel
ve Renk Optimizasyonu:
Opaklığı ayarlanamayan düz renk kodları yerine, şeffaflık desteği sunan modern rgba() veya hsla() renk formatlarına geçilir. background shorthand
(kısa yazım) kullanımı, tarayıcılar arası uyumsuzluk riskini önlemek için background-image,
background-size:
cover ve background-repeat: no-repeat
şeklinde uzun ve net mülklere dönüştürülür.
Web geliştirmenin en güçlü etkileşim alanı olan ve ön uç (front-end) ile arka uç (back-end)
dünyasını birbirine bağlayan Forms (Formlar) ile yazdığınız siteleri
internet ortamında tüm dünyaya açma sanatı olan Publishing Your Site (Sitenizi Yayınlamak) bölümleriyle
derinlemesine devam ediyoruz.
➡️ BÖLÜM 18: Formlar ve Veri
Giriş Alanları (Forms)
Formlar, bir web sayfasında kullanıcılardan bilgi (metin,
dosya, seçimler vb.) almak ve bu bilgileri işlenmek üzere sunucuya (server) göndermek
için kullanılan en kritik etkileşim araçlarıdır.
💡 Ön Uç ve Arka Uç Köprüsü
(Front-End & Back-End
İlişkisi)
Bir form doldurulup gönderildiğinde, front-end
geliştiricinin görevi biter ve veriler back-end
yazılımcısının kurduğu sisteme aktarılır. Müfredatta popüler back-end dilleri şu şekilde sıralanmaktadır:
1.
Go (Golang): Google tarafından
geliştirilen, yüksek performanslı ve modern sunucu dili.
2.
Node.js: JavaScript'i sunucu tarafında
çalıştırmaya yarayan popüler çalışma ortamı.
3.
Python: Temiz yazımı ve zengin
kütüphaneleriyle güçlü sunucu dili.
4.
Ruby
/ PHP:
Geleneksel ve yaygın kullanılan dinamik web dilleri.
💡 İletişim Metotları: GET ve
POST Farkı
Form verileri sunucuya aktarılırken iki ana HTTP yönteminden
(method) biri seçilir:
·
GET
Yöntemi:
Verileri URL adresinin sonuna ekleyerek gönderir (Örn:
arama.php?sorgu=html). Veriler tarayıcı geçmişinde ve adres çubuğunda açıkça
görünür. Bu yüzden şifre, kredi kartı gibi hassas veriler için kesinlikle
kullanılmaz. Sadece arama kutuları veya filtrelemeler için uygundur.
·
POST
Yöntemi:
Verileri HTTP isteğinin gövdesinde (Body katmanında) gizli bir paket
olarak gönderir. Adres çubuğunda hiçbir veri görünmez. Güvenlidir, dosya
yüklemelerine izin verir ve üyelik/giriş formlarında kullanılması zorunludur.
💡 En Sık Kullanılan Form
Elemanları ve Nitelikleri
·
<form>: Tüm form elemanlarını
sarmalayan ana etikettir. action="..." niteliği verilerin hangi
sunucu dosyasına gideceğini, method="..." ise GET veya POST yöntemini
belirler.
·
<input>: En temel veri giriş
elemanıdır. type="..." niteliğine göre şekil
değiştirir (text, password, email, checkbox, radio, file,
submit).
·
⚠️ name Niteliğinin Hayati Önemi: Bir <input> etiketine name="..." niteliği vermezseniz, o
alana yazılan veri sunucuya asla ulaşmaz. Arka uç yazılımcısı veriyi bu
isimle (değişken olarak) yakalar.
·
<label>: Form elemanlarının ne işe
yaradığını belirten etiketlerdir. for="..." niteliği ile ilgili input elemanının id değerine bağlanır. Böylece etikete tıklandığında bile input alanı otomatik olarak seçilir (Erişilebilirlik için
zorunludur).
·
<textarea>: Kullanıcının uzun metinler
(Örn: yorum, mesaj) girebileceği çok satırlı alanlar
oluşturur.
·
<select>, <optgroup>, <option>: Kullanıcıya açılır bir
açılır menü (drop-down) sunar. Seçenekleri gruplamak
için <optgroup>, her bir seçeneği oluşturmak için <option> kullanılır.
·
<fieldset> ve <legend>: Form içindeki ilişkili
elemanları görsel ve anlamsal bir çerçeve içine almak için <fieldset>, bu çerçevenin başlığını
yazmak için <legend> kullanılır.
🛠 Uygulama: Standartlara Uygun
Kusursuz Bir Form Tasarımı
Aşağıdaki kod yapısı, hem kullanıcı dostu (placeholder, autofocus
özellikleri içeren) hem de anlamsal olarak tam uyumlu bir kayıt formunu
gösterir:
<!DOCTYPE
html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Gelişmiş Form Uygulaması</title>
<style>
body { font-family: sans-serif; padding: 20px; background-color:
#f9f9f9; }
form { max-width: 500px; background: white;
padding: 20px; border-radius:
8px; box-shadow: 0
2px 4px rgba(0,0,0,0.1);
}
fieldset
{ border: 1px solid #ddd; padding: 15px; border-radius:
5px; margin-bottom: 15px;
}
legend
{ font-weight: bold; padding: 0 10px; color: #333;
}
.form-grup { margin-bottom: 15px; }
label
{ display: block; margin-bottom: 5px; font-weight:
bold; }
input[type="text"], input[type="email"], select, textarea { width: 100%;
padding: 8px; border: 1px
solid #ccc; border-radius: 4px;
box-sizing: border-box; }
button
{ background-color: deepskyblue;
color: white; border: none; padding:
10px 15px; border-radius:
4px; cursor: pointer; font-size: 16px; }
button:hover
{ background-color: royalblue;
}
</style>
</head>
<body>
<!--
Verileri güvenli POST yöntemiyle gonderiyoruz -->
<form action="/kaydet" method="POST">
<fieldset>
<legend>Kullanıcı Bilgileri</legend>
<div
class="form-grup">
<!--
'for' ve 'id' eşleşmesi erişilebilirlik sağlar -->
<label Aksiyonu="ad">Tam Adınız:</label>
<!--
autofocus: Sayfa açıldığında imleç otomatik buraya
odaklanır -->
<input type="text" id="ad" name="kullanici_adi" placeholder="Ahmet Yılmaz" required autofocus>
</div>
<div
class="form-grup">
<label Aksiyonu="eposta">E-posta Adresiniz:</label>
<input type="email" id="eposta" name="kullanici_email" placeholder="ahmet@ornek.com" required>
</div>
</fieldset>
<fieldset>
<legend>Eğitim Tercihleri</legend>
<div
class="form-grup">
<label Aksiyonu="kurs">Katılmak İstediğiniz Kurs:</label>
<select id="kurs" name="secilen_kurs">
<optgroup label="Ön Yüz (Front-End)">
<option value="html-css">HTML5 & CSS3
Uzmanlık</option>
<option value="flexbox">İleri Düzey Flexbox
Tasarımı</option>
</optgroup>
<optgroup label="Arka Yüz (Back-End)">
<option value="go-lang">Go Web
Programlama</option>
</optgroup>
</select>
</div>
</fieldset>
<button type="submit">Kayıt Ol</button>
</form>
</body>
</html>
➡️ BÖLÜM 19: Sitenizi
Yayınlamak (Publishing Your Site)
Bilgisayarınızda hazırladığınız web kodlarının (.html, .css dosyaları) internete bağlı
diğer tüm insanlar tarafından görünür hale gelmesi işlemine yayınlama (deploy/publishing) denir.
Müfredatta, projenizi kurumsal standartlarda yayına almanın adımları
anlatılmaktadır.
💡 Alan Adı Satın Almak
(Domain)
İnternet kullanıcılarının sitenize ulaşmak için tarayıcıya
yazacağı adrestir (Örn: sitenizinadi.com). Bilgisayarlar aslında
birbirleriyle IP adresleri (Örn: 192.0.2.1) üzerinden konuşurlar. Alan
adı, bu karmaşık sayıları insanların aklında tutabileceği kelimelere
dönüştürür. Eğitim sürecinde satın alımlar için domains.google altyapısı örnek
gösterilmiştir.
💡 Bulut Altyapısında Canlıya
Almak (Google Cloud & App Engine)
Kodlarınızı 7/24 internete açık, hızlı ve güvenli bir
bilgisayarda (sunucuda) barındırmanız gerekir. Kurs kapsamında projeyi Google
Cloud App Engine üzerinde canlıya almanın teknik
adımları şu şekildedir:
1.
Gerekli
Araçların Kurulması:
Bilgisayarınıza sunucu yönetim altyapısı için Google Cloud SDK (App Engine SDK) kurulumu gerçekleştirilir.
2.
Arka
Plan Altyapısı:
SDK sisteminin düzgün çalışması ve komutları yorumlaması için bilgisayarda Python
(Eğitimin hazırlandığı dönem standardı olan 2.7.x sürümü) kurulu olmalı ve
sistem ortam değişkenleri (PATH) yapılandırılmalıdır.
3.
Proje
Yapılandırması (app.yaml): Projenizin ana dizinine
sunucuya kuralları bildiren bir app.yaml dosyası eklenir. Bu dosyanın
içine Google Cloud Console üzerinden aldığınız benzersiz Project ID
(Proje Kimliği) yazılır.
4.
Yayınlama
Komutu:
Terminal açılır, proje dizinine gidilir ve sunucuya yükleme komutu
çalıştırılır:
appcfg.py
-A <PROJE_KİMLİĞİNİZ> -V v1 update .
5.
DNS
Yönlendirmesi:
Kodlar başarıyla yüklendikten sonra siteye <proje-id>.appspot.com adresinden erişilebilir hale
gelir. Son adımda, satın aldığınız alan adının (Domain) DNS ayarlarını Google
Cloud sunucularına yönlendirerek kendi adınızla yayını tamamlamış olursunuz.
📌
"Öğrenecekleriniz" Bölümünün Detaylı Açıklaması
Bu
kurs, katılımcılara sıfırdan profesyonel seviyeye kadar modern web
geliştirmenin kalbi olan HTML5 dünyasını öğretmeyi hedefler. Belgede listelenen
maddelerin işlevsel karşılıkları şunlardır:
➡️ BÖLÜM 1:
Giriş ve Temel Doküman Yapısı
Bu
bölümde HTML5 dünyasına adım atarak bir web sayfasının temel anatomisini,
etiket, nitelik ve değer kavramlarını öğreniyoruz.
📖 Konu Anlatımı
HTML5
dokümanları, tarayıcıya dosyanın türünü belirten bir bildirimle başlar. Her şey
etiketlerden (tags) oluşur.
💻 Kod Örneği
<!DOCTYPE
html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>İlk Web Sayfam</title>
</head>
<body>
<!--
Bu bir yorum satırıdır. Kullanıcılar görmez. -->
<h1>HTML5
Dünyasına Hoş Geldiniz!</h1>
<p
id="ana-paragraf" class="metin">Bu benim ilk gerçek HTML5
sayfamdır.</p>
</body>
</html>
🛠️ Pratik Uygulama
Bilgisayarınızda
boş bir not defteri veya VS Code editörü açın.
Yukarıdaki kod bloğunu yapıştırın ve dosya adını index.html olarak kaydederek
tarayıcınızda çift tıklayıp açın. Sayfa başlığının ve başlığın nasıl
göründüğünü inceleyin.
➡️ BÖLÜM 2:
Metin Biçimlendirme ve İçerik Düzenleme
Web
sayfasındaki metinsel içeriklerin hiyerarşik ve semantik olarak
yapılandırılması bu bölümün temelini oluşturur.
📖 Konu Anlatımı
💻 Kod Örneği
<h2>Eğitim Müfredatı İçeriği</h2>
<p>HTML5 öğrenmek çok keyiflidir.<br>Disiplinli çalışmak gerekir.</p>
<pre>
Sevgili Günlük,
Bugün HTML5
etiketlerini
detaylıca
öğrendim.
</pre>
<h3>Alışveriş Listesi (Sırasız)</h3>
<ul>
<li>HTML5
Kitabı</li>
<li>Kodlama Defteri</li>
</ul>
<h3>Günlük Rutin (Sıralı)</h3>
<ol>
<li>Dersi izle</li>
<li>Uygulama yap</li>
</ol>
🛠️ Pratik Uygulama
Bir
makale sayfası tasarlayın. En üste ana başlık (<h1>), altına yazar ismi ve
tarih, ardından kalın (<strong>) ve eğik (<em>) kelimelerin yer aldığı 3
paragraflık bir metin ekleyin. Makalenin sonuna maddeler halinde kaynakça
listesi oluşturun.
➡️ BÖLÜM 3: Hiperlinkler (Bağlantılar) ile Sayfaları Birleştirme
Web
sitelerinin birbirine bağlanmasını ve sayfa içi navigasyonu sağlayan köprülerin
kurulması anlatılmaktadır.
📖 Konu Anlatımı
Bağlantılar
<a> (Anchor)
etiketi ile oluşturulur. href niteliği bağlantının nereye
gideceğini belirtir.
💻 Kod Örneği
<!-- Dış Bağlantı -->
<a href="https://google.com" target="_blank">Google'ı Yeni Sekmede Aç</a>
<!-- İç Bağlantı -->
<a href="hakkimizda.html">Hakkımızda Sayfasına Git</a>
<!-- Sayfa İçi Navigasyon -->
<a href="#iletisim-bolumu">Sayfa Altındaki İletişime Git</a>
<div style="margin-top: 1000px;" id="iletisim-bolumu">
<h2>İletişim Bilgileri</h2>
<p>E-posta: test@example.com</p>
</div>
🛠️ Pratik Uygulama
Bir
web sitesi menüsü (Navigation Bar) yapın. Ana Sayfa, Ürünler ve İletişim linkleri olsun. Sayfanın en
altına da "Yukarı Çık" bağlantısı ekleyerek sayfa içi çapa (href="#ust-bolum")
uygulamasını test edin.
➡️ BÖLÜM 4:
Dijital Medya (Görsel, Ses ve Video Yönetimi)
Modern
web sitelerinde zengin medya içeriklerinin performanslı ve duyarlı biçimde
sunulması işlenmektedir.
📖 Konu Anlatımı
💻 Kod Örneği
<!-- SEO Uyumlu ve Duyarlı Görsel -->
<img src="logo.png" alt="Şirket
Logosu"
style="max-width: 100%; height: auto;">
<!-- Resme Link Verme -->
<a href="https://google.com">
<img src="buton-resmi.png" alt="Google
Git Butonu">
</a>
<!-- Ses Entegrasyonu -->
<audio controls>
<source src="sarki.mp3" type="audio/mpeg">
Tarayıcınız ses ögesini desteklemiyor.
</audio>
<!-- Video Entegrasyonu -->
<video width="400" controls>
<source src="tanitim.mp4" type="video/mp4">
</video>
🛠️ Pratik Uygulama
Yerel
klasörünüze bir adet kısa video ve bir adet manzara resmi koyun. HTML
sayfanızda resmi, üzerine tıklanınca videonun kaynağına gidecek şekilde bir
köprü (<a>)
içine alın.
➡️ BÖLÜM 5:
Tablolar ve iFrame ile Veri Gösterimi
Yapılandırılmış
verilerin grid mimarisinde sunulması ve dış kaynaklı web içeriklerinin sayfaya
gömülmesi anlatılır.
📖 Konu Anlatımı
💻 Kod Örneği
<table border="1" width="100%">
<caption>Haftalık Ders Programı</caption>
<tr>
<th>Günler</th>
<th>09:00 - 12:00</th>
<th>13:00 - 16:00</th>
</tr>
<tr>
<td>Pazartesi</td>
<td colspan="2">HTML5 Uzmanlık Eğitimi (Blok Ders)</td>
</tr>
<tr>
<td>Salı</td>
<td>CSS3
Giriş</td>
<td>PHP Temelleri</td>
</tr>
</table>
<!-- iFrame ile harici içerik -->
<iframe src="https://example.com" width="600" height="400" title="Harici Sayfa"></iframe>
🛠️ Pratik Uygulama
3
sütun ve 4 satırdan oluşan bir "Fiyat Tablosu" hazırlayın. İlk
satırda "Paket Adı", "Özellikler", "Fiyat"
başlıkları olsun. Son satırda ise tüm sütunları birleştiren (colspan="3") tek bir "Satın Almak İçin Bizimle İletişime
Geçin" hücresi tasarlayın.
➡️ BÖLÜM 6:
Formlar ve Kullanıcı Etkileşimi
Kullanıcılardan
bilgi toplamak, üye kayıt sistemleri, anketler ve mesaj kutuları oluşturmak
için form yapıları inşa edilir.
📖 Konu Anlatımı
Kullanıcı
girdileri <form> etiketi içine yazılır. action verinin nereye
gönderileceğini, method ise gönderim türünü (GET/POST) belirler. Form güvenliği
için verilerin backend tarafında temizlenmesi ve HTML
tarafında sınırlandırmalar yapılması kritiktir.
💻 Kod Örneği
<form action="kaydet.php" method="POST">
<fieldset>
<legend>Kişisel Bilgiler</legend>
<label for="isim">Adınız:</label>
<input type="text" id="isim" name="kullanici_adi" required maxlength="20"><br><br>
<label href="dogum">Doğum Tarihi:</label>
<input type="date" id="dogum" name="dogum_tarihi"><br><br>
<label>Cinsiyetiniz:</label>
<input type="radio" id="erkek" name="cinsiyet" value="E">
<label for="erkek">Erkek</label>
<input type="radio" id="kadin" name="cinsiyet" value="K">
<label for="kadin">Kadın</label><br><br>
<input type="submit" value="Formu Gönder">
<input type="reset" value="Temizle">
</fieldset>
</form>
🛠️ Pratik Uygulama
Bir
"Müşteri Geri Bildirim Formu" oluşturun. Formda ad-soyad (zorunlu field), e-posta,
1'den 10'a kadar puan verebileceği bir sayı alanı (type="number" min="1" max="10") ve uzun mesaj yazabileceği bir <textarea> alanı yer alsın.
➡️ BÖLÜM 7:
Profesyonel HTML5 Pratikleri ve API'ler
Arama
motoru optimizasyonu (SEO), harici Javascript
entegrasyonu, renk sistemleri ve grafik çizim (Canvas)
temelleri bu bölümde ele alınır.
📖 Konu Anlatımı
💻 Kod Örneği
<!-- Meta Etiketleri Örneği -->
<meta name="description" content="Profesyonel ve kapsamlı HTML5 Uzmanlık Kursu.">
<meta name="keywords" content="HTML5, Web Tasarım, Yazılım">
<!-- Renk ve Script Uygulaması -->
<div style="background-color: #FF5733; color: #FFFFFF; padding:
10px;">
Hexadecimal Renk
Uygulanmış Alan
</div>
<!-- Canvas Yapısı -->
<canvas id="grafikAlani" width="200" height="100" style="border:1px solid #000000;"></canvas>
<!-- Harici JavaScript Bağlantısı -->
<script src="script.js"></script>
🛠️ Pratik Uygulama
HTML
sayfanızın <head> kısmına Google arama
sonuçlarında çıkmasını istediğiniz 150 karakterlik özgün bir sayfa açıklaması (description) meta etiketi yazın. Gövdede ise arka plan rengi #34495E (Gece Mavisi) olan bir kutu
oluşturun.
➡️ BÖLÜM 8:
CSS ile Stil Yönetimi ve Kutu Modeli (Box Model)
Sayfaya
görsellik, renk, düzen ve tipografik estetik kazandıran CSS kuralları
öğrenilir.
📖 Konu Anlatımı
💻 Kod Örneği
<!-- Dahili CSS Örneği -->
<style>
.ozel-kutu
{
width:
300px;
padding:
20px; /* İç
boşluk */
border:
5px solid #333;
/* Çerçeve */
margin:
15px; /*
Dış boşluk */
background-color: #F1C40F;
font-family: Arial, sans-serif;
}
#tekil-baslik {
color:
#2C3E50;
}
</style>
<h1 id="tekil-baslik">CSS Dünyası</h1>
<div class="ozel-kutu">Kutu modelini öğreniyorum!</div>
🛠️ Pratik Uygulama
Harici
bir stil.css dosyası oluşturun. İçine bir
sınıf (.kart)
yazarak bu sınıfa genişlik, gri arka plan rengi, köşeleri yuvarlatılmış
kenarlık (border-radius) ve her yönden 20px iç boşluk (padding) verin. HTML sayfanızda bu sınıfı bir <div> üzerinde çağırın.
➡️ BÖLÜM 9: Responsive (Duyarlı) Tasarım Esasları
Web
sayfasının bilgisayar, tablet ve akıllı telefon gibi farklı ekran
genişliklerine otomatik uyum sağlaması yeteneğidir.
📖 Konu Anlatımı
Duyarlı
tasarımlarda sabit piksel değerleri (px) yerine esnek yüzdesel (%) veya viewport
(vw,
vh)
birimleri tercih edilir. Mobil öncelikli düşünülerek tasarlanan esnek grid
yapıları veya responsive stylesheet
kuralları sayesinde, cihaz ekranı küçüldüğünde elemanlar alt alta kayar ve
okunabilirlik korunur.
💻 Kod Örneği
<!-- Responsive tasarımın ilk şartı olan Viewport Meta Etiketi -->
<meta name="viewport" content="width=device-width,
initial-scale=1.0">
<style>
/* Responsive
Düzen Örneği */
.kolon {
width:
100%; /* Mobilde tam ekran genişlik kaplar */
float:
left;
box-sizing:
border-box;
padding:
10px;
}
/* Büyük ekranlar için basit bir responsive kural simülasyonu */
@media (min-width:
768px) {
.kolon {
width: 50%; /* Tablet ve masaüstünde yan yana 2
kolon olur */
}
}
</style>
<div class="kolon" style="background-color:#E74C3C;">Sol / Üst İçerik</div>
<div class="kolon" style="background-color:#3498DB;">Sağ / Alt İçerik</div>
🛠️ Pratik Uygulama
Sayfanıza
<meta
name="viewport"...> etiketini ekledikten sonra
yan yana duran iki geniş kutu tasarlayın. Tarayıcınızı sağ köşesinden tutup
daralttığınızda kutuların alt alta esnek biçimde geçip geçmediğini gözlemleyin.
💡
"Öğrenecekleriniz" Bölümünün Detaylı Açıklaması
Bu
kurs, modern web geliştirmenin iki temel taşı olan HTML5 ve CSS3
dillerini, popüler arayüz kütüphanesi Bootstrap
ve standartlara uygun XHTML ile harmanlayarak eksiksiz bir müfredat
sunmaktadır. Kursu tamamladığınızda kazanacağınız yetkinliklerin analizi
şöyledir:
➡️ BÖLÜM 2:
IDE Kurulumu ve Geliştirme Ortamı
Web
geliştirme sürecine başlamadan önce kodlarımızı rahatça yazabileceğimiz, hata
denetimi yapabilen ve bizi hızlandıracak bir Entegre Geliştirme Ortamı (IDE)
kurulması gerekir. Bu kursta sektör standardı olan Visual Studio Code (VS Code) tercih edilmiştir.
1.
Visual Studio Code
İndirilmesi ve Kurulması
VS Code; Microsoft tarafından geliştirilen ücretsiz, açık
kaynaklı ve cross-platform (Windows, macOS, Linux uyumlu) bir kod editörüdür. Resmi
web sitesinden sisteminize uygun sürüm indirilerek standart adımlarla kurulur.
2.
IDE'yi Özelleştirme
Üretkenliği
artırmak için editörün kişiselleştirilmesi şarttır. VS Code
üzerinde şu özelleştirmeler yapılır:
3.
Kodları Web Tarayıcısında Çalıştırma
Yazdığımız
HTML ve CSS kodlarının çıktısını görebilmek için bir web tarayıcısına (Google
Chrome, Microsoft Edge veya Mozilla Firefox) ihtiyaç
duyarız. Tarayıcılar, yazdığımız kod satırlarını yukarıdan aşağıya doğru
okuyarak bunları görsel birer web sayfasına dönüştürür.
🛠 UYGULAMA: VS Code üzerinde kod yazımını kolaylaştırmak için sol menüdeki
"Extensions" (Eklentiler) simgesine tıklayın ve "Live
Server" eklentisini kurun. Bu eklenti, kodunuzu her kaydettiğinizde
tarayıcının otomatik olarak yenilenmesini sağlayarak geliştirme sürecinizi
inanılmaz hızlandıracaktır.
➡️ BÖLÜM 3:
HTML Temelleri (HTML Fundamentals)
HTML
(HyperText Markup Language), web sayfalarının iskeletini
oluşturan bir işaretleme dilidir; bir programlama dili değildir. Sayfadaki
yazının, resmin veya butonun nerede duracağını belirler.
1.
HTML Etiketleri (Tags) ve Kod Yapısı
HTML
kodları küçüktür < ve
büyüktür >
işaretleri arasına yazılan etiketlerden oluşur. Genellikle bir açılış etiketi,
bir de kapanış etiketi (önünde eğik çizgi / olan) bulunur.
2.
Standart Bir HTML Belgesinin Formatı
Her
HTML dosyası tarayıcıya onun bir HTML5 belgesi olduğunu bildiren özel bir
şablonla başlamalıdır.
📝 ÖRNEK KOD (Standart
Şablon):
<!DOCTYPE
html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Benim İlk Web Sayfam</title>
</head>
<body>
<!--
Kullanıcının göreceği tüm içerikler buraya yazılır -->
<h1>Web Geliştirmeye Giriş</h1>
<p>Bu
benim HTML ile yazdığım ilk paragraftır.</p>
</body>
</html>
3.
Başlıklar, Paragraflar ve Metin Biçimlendirme
4.
Stil Özniteliği ve Stil Etiketi (Style Attribute
& Tag)
CSS
öğrenmeden önce HTML içinde temel renklendirmeler ve tasarımlar yapmak için style yapısı kullanılır.
5.
Bağlantılar (Hyperlinks), Görseller ve Butonlar
6.
HTML Yorum Satırları (Comments)
Kod
arasına kendimiz veya ekip arkadaşlarımız için notlar bırakmamızı sağlar.
Tarayıcı tarafından çalıştırılmaz ve kullanıcıya gösterilmez.
🛠 UYGULAMA (Hello World ve Temeller):
Aşağıdaki kodu VS Code editörünüze yapıştırın ve
tarayıcıda açarak elementlerin nasıl göründüğünü inceleyin:
<!DOCTYPE
html>
<html>
<head>
<title>HTML Temelleri Uygulaması</title>
</head>
<body>
<h1>Bilgisayar Bilimleri</h1>
<p>HTML
öğrenmek <strong>çok eğlenceli</strong> ve <i>kolaydır</i>.</p>
<!--
Buton ve tıklama aksiyonu -->
<button onclick="alert('Merhaba Dünya!')">Bana Tıkla</button>
<br><br>
<a
href="https://wikipedia.org">Vikipedi'yi Ziyaret Et</a>
</body>
</html>
➡️ BÖLÜM 4: HTML'de Verileri Görüntüleme (Displaying
Data in HTML)
Web
sayfalarında verilerin düzenli bir yapıda sunulması, listelenmesi ve
kullanıcıdan veri toplanması için gelişmiş HTML yapıları kullanılır.
1.
Listeler (Lists)
HTML'de verileri maddeler halinde listelemek için 3 ana yapı
vardır:
📝 ÖRNEK KOD (Liste
Türleri):
<!-- Sıralı Liste -->
<ol type="A">
<li>Yazılım Kurulumu</li>
<li>Kodlama Aşaması</li>
</ol>
<!-- Sırasız Liste -->
<ul>
<li>HTML5</li>
<li>CSS3</li>
</ul>
2.
Tablolar (Tables)
Verileri
satır ve sütun formunda göstermek için kullanılır.
📝 ÖRNEK KOD (Tablo):
<table border="1">
<caption>Öğrenci Not Listesi</caption>
<tr>
<th>Adı</th>
<th>Notu</th>
</tr>
<tr>
<td>Ahmet</td>
<td>95</td>
</tr>
</table>
3.
Düzenler (Layouts), Divs ve
Spans
Web
sayfasını mantıksal bölümlere ayırmak için kullanılan elemanlardır.
4.
Formlar (Forms)
Kullanıcıdan
ad, şifre, mesaj gibi verileri alıp sunucuya göndermek için kullanılır. <form> etiketi içine <input> (giriş alanları), <label> (alan adları) ve butonlar
eklenir.
🛠 UYGULAMA (Kapsamlı Form
ve Veri Düzeni):
<!DOCTYPE
html>
<html>
<head>
<title>Kullanıcı Kayıt Formu</title>
</head>
<body>
<section>
<h2>Kayıt Formu</h2>
<form action="/kaydet" method="POST">
<label for="username">Kullanıcı Adı:</label><br>
<input type="text" id="username" name="username" placeholder="Kullanıcı adınızı giriniz"><br><br>
<label for="email">E-posta Adresi:</label><br>
<input type="email" id="email" name="email"><br><br>
<label for="city">Şehir Seçiniz:</label><br>
<select id="city" name="city">
<option value="ist">İstanbul</option>
<option value="ank">Ankara</option>
</select><br><br>
<input type="submit" value="Bilgileri Gönder">
</form>
</section>
</body>
</html>
➡️ BÖLÜM 5: HTML'de Renkler (Colors in HTML)
HTML
elemanlarının arka planlarını veya yazılarını renklendirmek için tarayıcıların
tanıdığı farklı renk formatları mevcuttur.
1.
Renk Belirtme Türleri
📝 ÖRNEK KOD (Renk
Kullanımları):
<!-- RGB ile Kırmızı Arka Plan -->
<div style="background-color: rgb(255, 0, 0);">RGB Kırmızı</div>
<!-- RGBA ile %50 Şeffaf Yeşil Arka Plan -->
<div style="background-color: rgba(0, 255, 0, 0.5);">Yarı Şeffaf Yeşil</div>
<!-- Hexadecimal ile Mavi Yazı -->
<p style="color: #0000FF;">Hex Mavi</p>
<!-- HSL ile Parlak Sarı Yazı -->
<h3 style="color: hsl(60,
100%, 50%);">HSL
Sarı</h3>
➡️ BÖLÜM 6: HTML'e Medya ve Grafik Ekleme (Embedding
Media and Graphics)
Modern
web tasarımında sayfaları multimedya ögeleriyle (resim, video, ses, harita ve
çizimler) zenginleştirmek kullanıcı deneyimini doğrudan artırır.
1.
Gelişmiş Görsel Yönetimi ve İmaj Haritaları
Temel
<img>
etiketinin ötesinde, bir görselin farklı yerlerine tıklandığında farklı
linklere gidilmesini sağlayan İmaj Haritaları (<map> ve <area>) kurulabilir.
2.
Video ve Ses Ekleme (<video> & <audio>)
Eski
web dünyasındaki gibi harici eklentilere (Flash vb.) ihtiyaç duymadan, doğrudan
HTML5 etiketleriyle video ve ses oynatılabilir.
📝 ÖRNEK KOD (Video ve Ses):
<!-- Video Ekleme -->
<video width="400" controls autoplay
loop>
<source src="tanitim.mp4" type="video/mp4">
Tarayıcınız video etiketini desteklemiyor.
</video>
<!-- Ses Ekleme -->
<audio controls>
<source src="muzik.mp3" type="audio/mpeg">
</audio>
3.
Sayfa İçi Sayfa Ekleme (<iframe>)
Mevcut
web sayfanızın içerisine başka bir web sitesini (örneğin bir YouTube videosunu
veya Google Haritalar konumunu) gömmek için kullanılır.
4.
HTML Canvas ve SVG Grafik Yapıları
🛠 UYGULAMA (SVG ile Temel
Şekil Çizimi):
Aşağıdaki kodu kullanarak web sayfanızda kırılma yaşamayan kusursuz bir
vektörel daire ve dikdörtgen oluşturun:
<!DOCTYPE
html>
<html>
<head>
<title>Grafik Örnekleri</title>
</head>
<body>
<h2>Kusursuz Vektörel SVG Çizimi</h2>
<svg width="300" height="150">
<!--
Mavi bir dikdörtgen -->
<rect width="200" height="100" fill="blue" />
<!--
Kırmızı bir daire -->
<circle cx="250" cy="50" r="40" fill="red" />
</svg>
</body>
</html>
Harika!
Müfredat kılavuzumuza kaldığımız yerden, yine hiçbir özet yapmadan, süre/ders/önizleme gibi gereksiz satırları temizleyerek ve bolca
pratik kod örneği ile ileri düzey tasarımlar ekleyerek devam ediyoruz.
Bu
parçada Bölüm 7'den Bölüm 13'e kadar olan (Modern HTML5 Etiketleri, Event Mekanizmaları, Bootstrap
Framework ve Baştan Sona XHTML Proje/Debugging) tüm aşamaları derinlemesine
ele alıyoruz.
➡️ BÖLÜM 7: İleri
Seviye HTML Etiketleri ve HTML5 Yenilikleri
HTML5
ile birlikte web dünyasına sadece görsel değil, tarayıcıların ve arama
motorlarının sayfayı anlamlandırmasını sağlayan birçok gelişmiş etiket
eklenmiştir.
1.
Gelişmiş Metin ve Biçimlendirme Etiketleri
Müfredatta
yer alan ve metne özel anlamlar katan diğer biçimlendirme yapıları şunlardır:
2.
Metadata (Meta) Etiketleri
Web
sayfasının gövdesinde (<body>) görünmeyen ancak <head> alanına eklenerek
tarayıcıya, sunucuya ve arama motorlarına (SEO) sayfa hakkında bilgi veren
etiketlerdir.
📝 ÖRNEK KOD (HTML5 Özel
Etiketleri Uygulaması):
<p>Dosya indirme durumu:</p>
<!-- İlerleme çubuğu uygulaması -->
<progress value="75" max="100"></progress> 75%
<br><br>
<pre>
İçeride yazılan boşluklar
ve alt satıra
geçişler
aynen korunur.
</pre>
➡️ BÖLÜM 8:
HTML Global Öznitelikleri (Global Attributes)
Global
öznitelikler, ayırt etmeksizin tüm HTML etiketlerine uygulanabilen ortak
özelliklerdir. HTML5 ile birlikte bu listeye çok güçlü yetenekler eklenmiştir.
1.
Klasik Global Öznitelikler
2.
HTML5 ile Gelen Yeni Global Öznitelikler
📝 ÖRNEK KOD (contenteditable ve title
Kullanımı):
<!-- Kullanıcı bu paragraftaki metne tarayıcıda tıklayıp kendi
değiştirebilir -->
<p contenteditable="true" title="Bu yazıyı değiştirmek için tıklayın!">
Bu metin düzenlenebilir bir alandır. Silip
kendiniz yazın!
</p>
➡️ BÖLÜM 9:
HTML Olayları (Events)
HTML
olayları (Events), kullanıcının web sayfasında
yaptığı hareketlere (tıklama, yazma, sürükleme vb.) web sayfasının tepki
vermesini sağlayan tetikleyicilerdir. Genellikle JavaScript fonksiyonları ile
birlikte çalışırlar.
1.
Klavye Olayları (Keyboard Events)
Kullanıcı
klavyeden bir tuşa bastığında tetiklenir:
2.
Fare Olayları (Mouse Events)
Fare
hareketleri ve tıklamaları ile tetiklenir:
3.
Sürükleme Olayları (Drag Events)
Sürükle-bırak
mekanizmasını kurmak için kullanılır:
4.
Pano Olayları (Clipboard Events)
Kullanıcının
metin kopyalama/yapıştırma hareketlerini denetler:
🛠 UYGULAMA (Kopyalama ve
Çift Tıklama Engelleme Denetimi):
<!DOCTYPE
html>
<html>
<head>
<title>HTML Olayları Test Alanı</title>
</head>
<body>
<h3>Güvenlikli Metin Alanı</h3>
<!--
Kullanıcı bu alandan kopyalama yaparsa uyarı tetiklenir -->
<p
oncopy="alert('Bu siteden içerik kopyalamak yasaktır!')">
Bu yazıyı kopyalamayı deneyiniz.
</p>
<!--
Çift tıklama olayı uygulaması -->
<div
ondblclick="this.style.color='red'" style="cursor:pointer; user-select:none;">
Rengimi kırmızı yapmak için bana ÇİFT
tıklayın!
</div>
</body>
</html>
➡️ BÖLÜM 10: Bootstrap ile Esnek (Responsive)
Düzen ve UI Tasarımı
Bootstrap, HTML, CSS ve JavaScript ile hızlıca mobil uyumlu (responsive) web siteleri geliştirmek için kullanılan
dünyanın en popüler açık kaynaklı CSS framework'üdür.
Hazır sınıfları (classes) sayesinde sıfırdan CSS
yazma yükünü azaltır.
1.
Grid (Izgara) Sistemi ve Konumlandırma
Bootstrap, sayfayı yatayda 12 eşit sütuna böler. .container (kapsayıcı) ve .row
(satır) yapılarının içine yerleştirilen .col-* sınıfları ile ekran boyutuna
göre esnek yerleşimler yapılır.
2.
Hazır UI Bileşenleri ve Menüler
🛠 UYGULAMA (Bootstrap CDN ve Kart Tasarımı):
Sıfırdan harici kütüphane bağlayarak şık bir ürün kartı oluşturma uygulaması:
<!DOCTYPE
html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<!--
Bootstrap CSS Kütüphanesini İnternet Üzerinden
Bağlama (CDN) -->
<link rel="stylesheet" href="https://jsdelivr.net">
<title>Bootstrap
Tasarım Uygulaması</title>
</head>
<body class="bg-light p-5">
<div
class="container">
<div
class="row">
<!--
Ekran boyutuna göre kendini ayarlayan esnek kart yapısı -->
<div
class="col-md-4
col-sm-12">
<div
class="card shadow-sm">
<div class="card-body">
<h5 class="card-title">Bootstrap
Kursu</h5>
<p class="card-text">Modern grid yapısını ve hazır
bileşenleri derinlemesine öğrenin.</p>
<a href="#" class="btn btn-primary">Hemen Başla</a>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
➡️ BÖLÜM 11:
HTML Hands-On Practice (Uygulamalı Web Sitesi
Projesi)
Bu
aşamada öğrenilen tüm HTML ve Bootstrap teorik
bilgileri birleştirilerek tam donanımlı, çok sayfalı statik bir web sitesinin
iskeleti inşa edilir. Kurulan iskelet yapı şu sayfaları kapsar:
➡️ BÖLÜM 12:
XHTML (Extensible HyperText
Markup Language)
XHTML, HTML'in
XML (Extensible Markup
Language) kurallarına göre yeniden formüle edilmiş halidir. HTML'e
göre çok daha katı, kuralcı ve disiplinlidir. Tarayıcıların kodu daha
hatasız okumasını amaçlar.
1.
XHTML ve HTML Arasındaki Kritik Sözdizimi (Syntax)
Farkları
HTML
kod yazarken yapılan bazı küçük esneklikleri veya hataları tolere ederken,
XHTML bu durumlarda sayfa kırılması yaratır. Temel kuralları şunlardır:
📝 ÖRNEK KOD (HTML'den XHTML'e Dönüşüm
Tasarımı):
<!-- HTML Formatı (Hatalı/Gevşek Yapı) -->
<INPUT
type=checkbox checked> <br>
<!-- Standartlara Uygun XHTML Formatı (Doğru Yapı) -->
<input type="checkbox" checked="checked" /> <br
/>
➡️ BÖLÜM 13:
HTML Kodlarında Hata Ayıklama (Debugging)
Yazılan
web kodlarının hatalardan arındırılması, tüm dünya tarayıcılarında aynı
kalitede çalışması için "Debugging" süreçleri uygulanır.
1.
Hata Türleri ve Çözümleri
2.
HTML Doğrulayıcı (Validator) Kullanımı
Yazdığımız
kodların kalitesini test etmek için W3C (World Wide
Web Consortium) tarafından sağlanan resmi HTML
Validator araçları kullanılır.
Müfredat
kılavuzumuza, belirlemiş olduğunuz kurallar doğrultusunda (süre/ders/önizleme satırlarını temizleyerek, özet yapmadan ve bolca
pratik kod/uygulama senaryoları ekleyerek) devam ediyoruz.
Bu
parçada Bölüm 14'ten Bölüm 19'a kadar olan (CSS Temelleri, Box Model,
Gelişmiş Metin Efektleri, Renk Teorileri/Filtreler, CSS Özellikleri ve
Liste/Tablo Stilleme) tüm konuları en ince
ayrıntısıyla ele alıyoruz.
➡️ BÖLÜM 14:
CSS Temelleri (CSS Basics)
CSS
(Cascading Style Sheets), HTML ile oluşturulan web
sayfalarının görsel tasarımını (renk, font, düzen, yerleşim, animasyon) kontrol
eden stil dilidir. HTML sayfanın iskeletiyse, CSS onun elbisesi ve dış
görünüşüdür.
1.
CSS Ekleme Yöntemleri ve Seçim Önceliği
Bir
web sayfasına CSS kodları 3 farklı yöntemle entegre edilebilir:
2.
Cascading Order
(Basamaklama/Öncelik Sırası)
Tarayıcılar,
aynı HTML elemanına birden fazla farklı yerden stil uygulandığında hangisinin
geçerli olacağını belirli bir hiyerarşiye göre seçer. Öncelik sırası en
yüksekten en düşüğe şöyledir:
3.
CSS Kutu Modeli (Box Model)
CSS'te yer alan her bir HTML elemanı tarayıcı tarafından dört
katmandan oluşan bir kutu olarak kabul edilir. Sayfa düzenini hatasız
yapabilmek için bu modeli anlamak şarttır:
📝 ÖRNEK KOD (Box Model
Yapısı):
.kutu-tasarimi {
width:
300px;
height:
100px;
padding:
20px; /* İçerik kenarlardan 20px uzaklaşır */
border:
5px solid black;
/* 5px kalınlığında siyah düz çizgi */
margin:
40px; /* Diğer elemanlardan dışarıya doğru 40px boşluk */
}
➡️ BÖLÜM 15:
CSS ile Metin Modifikasyonu (Modifying Text Using CSS)
Web
sitesindeki metinlerin okunabilirliğini artırmak ve sanatsal tasarımlar sunmak
için CSS gelişmiş metin özellikleri sunar.
1.
Metin Biçimlendirme ve Efektleri
2.
Tipografi ve Gelişmiş Font Özellikleri
🛠 UYGULAMA (Katmanlı 3D
Yazı Efekti):
Metne birden fazla gölge vererek gerçekçi bir 3D görünüm kazandırma uygulaması:
<!DOCTYPE
html>
<html>
<head>
<style>
.uc-boyutlu-yazi {
font-family: 'Arial Black', sans-serif;
font-size:
50px;
color: #FFFFFF;
/* Virgülle ayırarak birden fazla
gölge katmanı ekleme tekniği */
text-shadow: 1px 1px 0px #ccc,
2px
2px 0px #999,
3px
3px 0px #666,
4px
4px 5px rgba(0,0,0,0.5);
}
</style>
</head>
<body>
<h1 class="uc-boyutlu-yazi">CSS 3D
TEXT</h1>
</body>
</html>
➡️ BÖLÜM 16: CSS'te Renk Teorisi ve Görsel Filtreler (Colors in CSS)
CSS,
web elemanlarının hangi bölgelerinin (arka plan, yazı, kenarlık vb.) nasıl
renklendirileceğini esnek fonksiyonlarla kontrol eder.
1.
Renk Belirtme Detayları ve Anahtar Kelimeler
2.
Doygunluk, Opaklık ve CSS Filtreleri (Filters)
🛠 UYGULAMA (Siyah-Beyaz
Resmin Üzerine Gelince Renklenmesi):
Modern portfolyo sitelerinde sıklıkla kullanılan filtre efekti uygulaması:
<!DOCTYPE
html>
<html>
<head>
<style>
.efektli-resim
{
width: 300px;
filter: grayscale(100%);
/* Resim başlangıçta tamamen siyah beyaz */
transition: filter 0.5s; /* Değişimin yumuşak olması için geçiş efekti
*/
}
.efektli-resim:hover {
filter: grayscale(0%); /* Fareyle üzerine gelindiğinde orijinal
renklerine döner */
}
</style>
</head>
<body>
<img src="https://picsum.photos" class="efektli-resim" alt="Efekt
Testi">
</body>
</html>
➡️ BÖLÜM 17:
Detaylı CSS Özellikleri (CSS Properties)
Bu
bölüm, web elemanlarının sınırlarını, arka planlarını, konumlarını ve
görünürlük alanlarını manipüle eden temel özellikleri barındırır.
1.
Arka Plan (Background) ve Kenarlık (Border)
Özellikleri
2.
Kutu ve Taslak Özellikleri (Box & Outline)
3.
Konumlandırma (Positioning) ve Hizalama
➡️ BÖLÜM 18:
CSS ile Tablo Tasarımı (CSS Tables)
HTML
ile oluşturulan yalın tabloları modern, şık ve okunabilir hale getirmek tamamen
CSS stilleriyle mümkündür.
1.
Tablo Görüntüsü ve Çizgi Kontrolleri
📝 ÖRNEK KOD (Zebra Desenli
Modern Tablo Tasarımı):
<!DOCTYPE
html>
<html>
<head>
<style>
table
{
width: 100%;
border-collapse: collapse;
/* Çift çizgileri engeller */
}
th,
td {
padding: 12px;
text-align: left;
border-bottom: 1px solid #ddd;
}
th
{
background-color: #4CAF50;
color: white;
}
/* Zebra deseni: Her çift satırın arka
planını hafif gri yapar */
tr:nth-child(even) {
background-color: #f2f2f2;
}
/* Fareyle satırın üzerine gelince
satırı vurgular */
tr:hover
{
background-color: #ddd;
}
</style>
</head>
<body>
<table>
<tr><th>Kurs Adı</th><th>Dil</th></tr>
<tr><td>HTML5</td><td>HTML</td></tr>
<tr><td>CSS3</td><td>CSS</td></tr>
<tr><td>Bootstrap</td><td>CSS
Framework</td></tr>
</table>
</body>
</html>
➡️ BÖLÜM 19:
CSS ile Liste Tasarımı (CSS Lists)
HTML
listelerinin (<ul>, <ol>) başındaki klasik nokta veya
sayı sembolleri CSS ile tamamen özelleştirilebilir veya tamamen kaldırılabilir.
1.
Liste Özellikleri ve Renklendirme
📝 ÖRNEK KOD (Navigasyon
Menüsüne Hazırlık Liste Temizliği):
ul.ozel-liste {
list-style-type:
none; /*
Listenin başındaki tüm noktaları siler */
padding:
0; /* Tarayıcının varsayılan iç boşluğunu sıfırlar */
margin:
0; /* Dış boşluğu sıfırlar */
}
ul.ozel-liste li {
display:
inline-block; /*
Maddeleri alt alta değil, yan yana dizer */
padding:
10px;
background-color: #eee;
}
Müfredat
rehberimizin son aşamasına geçiyoruz. Bu bölümde, yönergeleriniz doğrultusunda
süre/ders/önizleme satırlarını tamamen ayıklayarak Bölüm
20'den son bölüm olan Bölüm 28'e kadar olan (CSS Animasyonları, Gelişmiş
Seçiciler, At-Rules Kuralları, Blend Modları, CSS
Grid ve Hata Ayıklama) tüm ileri seviye konuları derinlemesine inceliyor ve
bolca pratik uygulama senaryosu ile tamamlıyoruz.
➡️ BÖLÜM 20
& 21: CSS3 Animasyonları ve Canlandırılabilir Özellikler
CSS3,
web sayfalarındaki elemanları JavaScript kullanmadan, sadece tarayıcı gücüyle
hareket ettirmemizi, renk değiştirmemizi ve canlandırmamızı sağlar.
1.
Geçiş Özellikleri (Transition Properties)
Bir
elemanın durum değiştirdiğinde (örneğin fareyle üzerine gelindiğinde) değişimin
aniden değil, zamana yayılarak yumuşakça gerçekleşmesini sağlar.
2.
Anahtar Kareler (@keyframes) ve Animasyon Özellikleri
Daha
karmaşık, kendi kendine dönen veya sürekli tekrar eden hareketler için @keyframes şablonu ve animation özellikleri kullanılır.
3.
Animasyon Yapılabilen Özellikler
Müfredatta
listelenen; arka plan (background),
kenarlık (border), kolon genişlikleri (column), yazı boyutu (font), dış boşluk (margin), iç boşluk (padding), yükseklik-genişlik (height/width), metin özellikleri (text) ve harf/kelime boşlukları (word/letter-spacing) zaman döngüsü içerisinde @keyframes ile pürüzsüzce
canlandırılabilir.
🛠 UYGULAMA (Sonsuz Döngülü
Kalp Atışı Animasyonu):
<!DOCTYPE
html>
<html>
<head>
<style>
.canli-kutu
{
width: 100px;
height: 100px;
background-color: text;
background:
radial-gradient(circle, #ff4d4d,
#cc0000);
border-radius: 50%;
margin: 50px auto;
/* Animasyon bağlama: adı "nabiz", süresi 1
saniye, doğrusal hız, sonsuz döngü */
animation: nabiz 1s
linear infinite;
}
/* Animasyon adımlarının tanımlanması
*/
@keyframes nabiz
{
0% { transform:
scale(1); }
50% { transform:
scale(1.2); }
100% { transform:
scale(1); }
}
</style>
</head>
<body>
<div
class="canli-kutu"></div>
</body>
</html>
➡️ BÖLÜM 22:
CSS ile Buton Tasarımı ve Durum Yönetimi
Kullanıcı
etkileşiminin en yüksek olduğu buton elemanları, CSS durum seçicileriyle
dinamik hale getirilir.
➡️ BÖLÜM 23:
CSS Pseudo-Sınıfları ve Seçiciler (Pseudo-Classes & Selectors)
Seçiciler,
HTML elementlerini tam on ikiden vurarak hedeflememizi sağlar. Yalancı sınıflar
(Pseudo-classes) ise elemanların özel durumlarına
stil vermemizi sağlar.
📝 ÖRNEK KOD (Input Focus ve Yalancı Eleman
Kullanımı):
/* Input
alanına tıklanıp yazı yazılmaya başlandığında kenarlığı mavi yapar */
input:focus {
border:
2px solid #3498db;
outline:
none;
}
/* Linklerin başına
otomatik olarak bir sağ ok ikonu ekleme */
a::before
{
content:
"👉 ";
}
➡️ BÖLÜM 24:
CSS At-Rules Kuralları
At-Rules,
CSS'in nasıl davranması gerektiğini veya harici
kaynakları nasıl işleyeceğini belirten, önünde @ işareti bulunan özel
komutlardır.
➡️ BÖLÜM 25: İleri
Seviye CSS (Advanced CSS)
Web
sitelerine görsel zenginlik ve modern yerleşim düzenleri katan en profesyonel
CSS yetenekleri bu alanda toplanmıştır.
🛠 UYGULAMA (Saf CSS Grid
ile 3 Kolonlu Sayfa Düzeni):
<!DOCTYPE
html>
<html>
<head>
<style>
.grid-kapsayici {
display: grid;
/* Sayfayı otomatik genişleyen,
aralarında 10px boşluk olan 3
eşit sütuna böler */
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}
.grid-eleman {
background-color: #34495e;
color: white;
padding: 20px;
text-align: center;
font-family: sans-serif;
}
/* Mobil Cihazlar İçin @media At-Rule Ayarı */
@media (max-width:
600px) {
.grid-kapsayici {
/* Ekran 600px'den
küçükse sütunları teke düşür (alt alta diz) */
grid-template-columns: 1fr;
}
}
</style>
</head>
<body>
<div
class="grid-kapsayici">
<div
class="grid-eleman">Sol Menü</div>
<div
class="grid-eleman">Ana İçerik Alanı</div>
<div
class="grid-eleman">Sağ Panel</div>
</div>
</body>
</html>
➡️ BÖLÜM 26:
CSS Hands-On Practice (Uygulamalı CSS Projesi)
Bu
pratik bölümünde, Bölüm 11'de iskeletini HTML ve Bootstrap
ile kurduğumuz web sitesinin (Ana Sayfa, Hakkımızda, Ürün Menüsü ve İletişim
sayfaları) tüm özelleştirilmiş görsel tasarımları saf CSS kodları yazılarak
tamamlanır.
➡️ BÖLÜM 27:
CSS Kodlarında Hata Ayıklama ve Validator
➡️ BÖLÜM 28:
Yararlı CSS Detayları (Specifics)