kapak-02.webp
Gece, karla kaplı bir iskelenin üstünde ışıl ışıl parlayan bir ev iskeleti; yanında küçük bir penguen duruyor.

Hafta 02

Temeller ve hareket

Aşağı kaydırın, ders başlıyor.

Biliyor muydunuz? Web'in ilk yıllarında yayımlanan "HTML Tags" belgesi yalnızca 18 etiket tanımlıyordu. Deneyin: bir paragrafa art arda on boşluk yazın. Kaç tanesi görünüyor? Biliyor muydunuz? <a> etiketindeki "a", çapa anlamına gelen "anchor" kelimesinden gelir; href ise "hypertext reference"ın kısaltmasıdır. Deneyin: CtrlU⌥⌘U ile bu sayfanın kaynağını açın ve bir yorum satırı bulun.
14 hafta

İkinci duraktayız. Geçen haftanın sayfası hâlâ açık; bir şeyi unuttuysanız kutusuna tıklayıp dönebilirsiniz. Sonraki haftalar geldikçe açılacak.

  1. Hafta 01geçen hafta Web'e ilk adımHTML ve CSS temelleri, butonlar
  2. Hafta 02bugün Temeller ve hareketetiketler ve kurallar yeniden, hover, gölge, DevTools, kutu modeli
  3. Hafta 03 Yazımetin ve tipografi, Google Fonts
  4. Hafta 04 YapıHTML iskeleti, anlamlı etiketler, erişilebilirlik
  5. Hafta 05 Görsel ve displayresimler, inline ve block. Tur 1'deki "neden yan yana?" sorusunun cevabı burada.
  6. Hafta 06 Kutular içinde kutulardiv ve iç içe düzenler
  7. Hafta 07 Grid ve 1. lab sınavı
  8. Hafta 08 Flexbox
  9. Hafta 09 Position ve farklı ekranlar
  10. Hafta 10 Klonbir video sitesinin arayüzünü bitirmek, modern CSS
  11. Hafta 11 JavaScript'e girişconsole, DOM
  12. Hafta 12 Olaylar ve fonksiyonlartıklama, form doğrulama
  13. Hafta 13 Verifetch, JSON, API ve siteyi yayına almak
  14. Hafta 14 Sunumlar ve 2. lab sınavı

Plan değişebilir; tarihler akademik takvime göre duyurulacak.

hafta-02.html

Temeller ve hareket

Geçen hafta en çok butonlarla ve renklerle uğraştık; etiketler, özellikler ve yazım kuralları biraz hızlı geçti. Bugünün ilk yarısında bu temelleri yeni örneklerle yeniden kuruyoruz. İkinci yarıda butonlarınız hareket etmeye başlayacak, gölge kazanacak ve DevTools ile bir sayfanın içine bakmayı öğreneceksiniz.

  • Sağlamlaştıracağızetiket, özellik, yazım kuralları, class, renk
  • Yenihover, geçiş, gölge, DevTools, kutu modeli
  • Yazacaksınız2a'dan 2f'ye altı dosya, bir ürün kartı
1

Temelleri sağlamlaştırmak

yaklaşık 60 dakika

Her blokta önce ben projeksiyonda bir örnek göstereceğim, sonra siz biraz farklısını yazacaksınız. Ben de sırayla her bilgisayara uğrayacağım.

01 Bir etiketin anatomisi

Geçen hafta bu satırı yazdınız ama parçalarına hiç ad vermedik. Hata ararken en çok işe yarayan şey doğru adı bilmektir: "kapanış etiketi eksik" demek, "bir şey çalışmıyor" demekten çok daha hızlı yol gösterir. Satırın parçalarının üstüne gelin ya da aşağıdaki adlardan birini seçin.

<a href="https://www.google.com.tr" target="_blank"> Google'da ara </a>

Bir parçanın üstüne gelin; adı ve görevi burada yazacak.

2a.html
<meta charset="UTF-8">
<button>Deniz</button>
<p>Bugün laboratuvarda bir etiketin parçalarına tek tek ad verdik.</p>
<a href="https://www.google.com.tr" target="_blank">Google'da ara</a>
tarayıcıda
Sıra sizde Yeni bir dosya açın ve 2a.html adıyla kaydedin.
  • Üstünde kendi adınızın yazdığı bir buton yapın.
  • Bugün nasıl geçtiğini anlatan bir paragraf yazın.
  • En sevdiğiniz siteye, yeni sekmede açılan bir bağlantı ekleyin. Sonra kendi satırınızda açılış etiketini, özelliği, değeri ve içeriği yanınızdakine parmağınızla gösterin.

Dosyadan tarayıcıya

Kodu yazdıktan sonra dört adım var: kaydetmek, doğru uzantıyı görmek, dosyayı tarayıcıda açmak ve adres çubuğuna bakmak. Ekranınız aşağıdakilere benzemeli; resimlere tıklayınca büyürler.Mac'te adımlar şöyle:

ekran görüntüsü 1
Not Defteri'nde 2a.html. Yazıyı büyütmek için Ctrl tuşuna basılı tutup fare tekerleğini çevirin; alttaki çubukta UTF-8 yazmalı.
ekran görüntüsü 2
Kaydederken Kayıt türü: Tüm dosyalar ve Kodlama: UTF-8 seçin. İngilizce Windows'ta bu alanların adı Save as type ve Encoding.
ekran görüntüsü 3
Dosya Gezgini'nde adın sonunda .html görünmeli. Görünmüyorsa uzantılar gizli demektir.
ekran görüntüsü 4
Adres çubuğunda Dosya ve C:/web-ders/2a.html yazıyor: sayfa internetten değil, kendi diskinizden geliyor.
  1. TextEdit'te yeni bir belge açın ve Biçim > Düz Metin Yap'ı seçin (⇧ ⌘ T). Kodu ancak bundan sonra yazın.
  2. ⌘ S ile kaydedin: adı 2a.html, düz metin kodlaması Unicode (UTF-8). TextEdit uzantıyı sorarsa ".html kullan" deyin.
  3. Finder'da dosyayı seçip ⌘ I ile bilgi penceresini açın. "Ad ve Uzantı" kısmında adın gerçekten .html ile bittiğini görün.
  4. Dosyayı Chrome'a sürükleyin. Adres çubuğunda Dosya yazar ve yol /Users/... ile başlar: sayfa internetten değil, kendi diskinizden geliyor.
Tarayıcı bu dosyayı nasıl okuyor?

Bir sitenin adresini yazdığınızda tarayıcı dosyayı bir sunucudan ister; kendi dosyanızı açtığınızda ise aynı işi diskten okuyarak yapar. İki durumda da eline geçen şey düz bir metindir ve tarayıcı onu yukarıdan aşağıya okuyup etiketleri tanıdıkça sayfayı çizer.

Adresten sayfaya giden dört adımı geçen hafta konuşmuştuk: İnternet nasıl çalışır.

02 Yazım kuralları

Tarayıcı yazdıklarınızı birkaç basit kurala göre okur. Bu kuralları bildiğinizde "neden böyle göründü?" sorusunun cevabını çoğu zaman kendiniz bulursunuz. Her pencerede solda yanlış, sağda doğru yazım var ve ikisi de gerçekten tarayıcıda çiziliyor.

kural 1: boşluklar

HTML fazla boşlukları ve satır sonlarını tek bir boşluğa indirir.

yanlış
<p>Bugün          çok güzel
bir gün.</p>
doğru
<p>Bugün çok güzel<br>bir gün.</p>
<p>Yeni bir paragraf.</p>

On boşluk yazdınız, biri göründü; alt satıra geçtiniz, tarayıcı umursamadı. Yeni satır için <br>, yeni paragraf için <p> kullanın.

kural 2: iç içe etiketler

İç içe etiketler, açıldıkları sıranın tersiyle kapanır.

yanlış
<p><strong><em>Quiz cuma</strong></em></p>
doğru
<p><strong><em>Quiz cuma</em></strong></p>

İkisi aynı görünüyor, çünkü tarayıcı hatayı sessizce onardı. Her zaman bu kadar şanslı olmazsınız; iç içe kutular gibi düşünün: en son açtığınız kutuyu ilk kapatırsınız.

kural 3: kapanmayan etiketler

Bazı etiketlerin kapanışı yoktur: <br> ve <img> gibi.

yanlış
<p>Satır bir<br></br>Satır iki</p>
doğru
<p>Satır bir<br>Satır iki</p>

Bu etiketlerin içine yazılacak bir şey olmadığı için kapanışları da yok. Tarayıcı fazladan yazılan </br>'yi ikinci bir satır sonu sanıyor; aradaki boşluğun sebebi bu. Resimlere 5. haftada geleceğiz.

kural 4: tırnaklar

Özellik değerleri çift tırnak içine yazılır.

yanlış
<a href="https://www.google.com.tr>Google'da ara</a>
<p>Bu paragraf nereye gitti?</p>
doğru
<a href="https://www.google.com.tr">Google'da ara</a>
<p>Bu paragraf yerinde.</p>

Soldaki sonuç boş, çünkü kapanmayan tırnak kendinden sonraki her şeyi adresin bir parçası sandı. Tek bir eksik tırnak bir sayfanın geri kalanını yutabilir.

kural 5: küçük harf

Etiket ve özellik adları küçük harfle yazılır.

yanlış
<style>.kaydet { background-color: gold; }</style>
<BUTTON CLASS="Kaydet">Kaydet</BUTTON>
doğru
<style>.kaydet { background-color: gold; }</style>
<button class="kaydet">Kaydet</button>

Büyük harfli BUTTON aslında çalışıyor: HTML etiket adlarında büyük küçük harfe bakmaz. Ama alışkanlık class'ın değerine de sıçradı ve orada Kaydet ile kaydet iki ayrı ad. Her şeyi küçük harfle yazarsanız bu hatayı hiç yapmazsınız.

kural 6: yorumlar

<!-- yorum --> sayfada görünmez ama kaynak kodda durur.

yanlış
<p>Görünen paragraf.</p>
<!-- Bu not kapanmadı
<p>Bu paragraf da yorumun içinde kaldı.</p>
doğru
<p>Görünen paragraf.</p>
<!-- Bu not yalnızca kaynak kodda durur. -->
<p>Bu paragraf da görünüyor.</p>

Yorumlar kendinize ya da kodu okuyacak birine not bırakmak içindir. Görmek için sayfanın kaynağını açın: Ctrl U⌥ ⌘ U. Bu sayfanın kaynağında da size bırakılmış bir yorum var.

Her dilin kendi yorum işareti var: HTML'de <!-- not -->, CSS'te /* not */. Birinin işareti ötekinde yorum sayılmaz.

  • Not Defteri'nde yorum için bir kısayol yok; işaretleri elle yazarsınız.
  • VS Code'da satırı yorum yapmak ya da yorumu kaldırmak için Ctrl /⌘ /, seçtiğiniz bloğu yorum yapmak için Shift Alt A⇧ ⌥ A. VS Code dosyanın türüne bakar: .html dosyasında <!-- -->, .css dosyasında /* */ ekler.
  • Türkçe Q klavyede Ctrl /⌘ / çoğu zaman yazıldığı gibi çalışmaz. Kendi tuşunuzu bulmak için VS Code'da Ctrl K, ardından Ctrl S⌘ K, ardından ⌘ S ile klavye kısayollarını açın ve arama kutusuna Toggle Line Comment yazın; karşısında sizin klavyenizdeki tuş görünür.

Kalın, eğik, altı çizili

Bu kuralları bir biyografide birlikte kullanalım. <strong> bir kelimenin önemli olduğunu söyler ve tarayıcı onu kalın çizer; <em> vurgu içindir ve eğik çizilir. <u> altını çizer, ama altı çizili yazı bağlantıya benzediği için onu az kullanın.

2b.html
<meta charset="UTF-8">
<p>Adım <strong>Deniz</strong>. <em>Yönetim Bilişim Sistemleri</em> okuyorum.<br>
Kampüste en sevdiğim yer <u>kütüphane</u>.</p>
tarayıcıda
Sıra sizde 2b.html adında yeni bir dosya açın.
  • Kendinizi anlatan kısa bir biyografi yazın: içinde bir kalın, bir eğik ve bir altı çizili kelime olsun.
  • Paragrafı bitirmeden bir satır aşağı inin.
  • Kurallardan birini bilerek bozun, örneğin bir tırnağı silin. Sonucu yanınızdakine tahmin ettirin, sonra birlikte bakın.
Tarayıcı fazla boşlukları neden yutuyor?

HTML'i insanlar yazar ve okur. Kodu okunur tutmak için satırları girintili yazar, uzun cümleleri bölersiniz; tarayıcı bu boşlukları sizin düzeniniz sayar ve sayfaya taşımaz. Böylece kodunuzu istediğiniz gibi hizalayabilirsiniz ve sayfanın görünüşü bundan etkilenmez.

Sayfadaki boşlukları belirlemek CSS'in işidir. Boşluğun gerçekten korunmasını istediğiniz yerler için CSS'te bir yol var; ona ileride, yazı haftasında değineceğiz.

03 Hata avı

Aşağıdaki kodda tam altı hata var ve hepsini bilerek koydum. Kodu soldaki pencerede düzeltin; sağdaki sayfa siz yazdıkça güncellenir, düzelttiğiniz her hata için de bir lamba yanar.

Tarayıcılar birçok hatayı affeder ve sayfayı yine de çizer. Hataların gözden kaçmasının sebebi tam da bu.

Bulunan: 0/6

2c.html, hatalı
tarayıcıda
04 CSS'in dilbilgisi

HTML'de bir etiketin parçalarına ad verdik; bir CSS kuralının da parçaları var. Her kural iki soruya cevap verir: seçici "kime?", süslü parantezlerin içindeki satırlar ise "ne değişecek?" sorusuna. Parçaların üstüne gelin.

.abone-ol { background-color: rgb(200, 0, 0); }

Bir parçanın üstüne gelin; adı ve görevi burada yazacak.

  • Class adı CSS'te başına nokta alır (.abone-ol), HTML'de almaz (class="abone-ol").
  • Class adlarını küçük harfle yazın ve kelimeleri tireyle birleştirin: abone-ol. Boşluk bırakmayın, çünkü boşluk iki ayrı class demektir. Türkçe karakter de kullanmayın: katıl yerine katil.
  • CSS'te not bırakmak için /* yorum */ yazılır. HTML'deki <!-- --> CSS'in içinde çalışmaz.
kural.html
<style>
  /* Kırmızı abone butonu */
  .abone-ol {
    background-color: rgb(200, 0, 0);
    color: white;
  }
</style>
<button class="abone-ol">ABONE OL</button>
<button class="abone ol">ABONE OL</button>
tarayıcıda
Sıra sizde
  • İkinci buton neden gri kaldı? Class'ını düzeltin ve iki butonu aynı yapın.
  • color: white; satırının sonundaki noktalı virgülü silin, altına bir satır daha ekleyin ve ne olduğuna bakın.
  • Kuralın üstüne kendi /* yorum */ satırınızı yazın.
HTML ve CSS neden ayrı diller?

HTML sayfada ne olduğunu, CSS nasıl göründüğünü söyler. İkisini ayırdığınızda aynı içeriğe hiç dokunmadan bambaşka bir görünüş verebilirsiniz; tek bir stil dosyasını değiştirip yüzlerce sayfanın rengini bir anda değiştirebilirsiniz.

Bu sayfa da böyle çalışıyor: pencereler, renkler ve şeritler 1. haftayla ortak bir stil dosyasından geliyor. Kaynak kodda ortak/stil.css satırını bulabilirsiniz.

05 Renk laboratuvarı

Aynı renk CSS'te üç farklı biçimde yazılabilir: bir adla, bir onaltılık (hex) kodla ya da rgb() ile. #C80000 kodundaki ilk iki hane kırmızının, sonraki ikisi yeşilin, son ikisi mavinin miktarıdır; C8 onaltılık sayıyla 200 demek, yani rgb(200, 0, 0) ile aynı renk. Aşağıdan bir renk seçin, üç yazılışı birden görün.

hex#C80000
rgb()rgb(200, 0, 0)
renk adıBu rengin tam bir adı yok.
background-color: rgb(200, 0, 0);
Sıra sizde
  • Her gün kullandığınız bir sitenin kırmızısını bulun. Şimdi bu araçla göz kararı deneyin; 10. blokta DevTools ile tam değerini okuyacaksınız.
  • Bulduğunuz rengi 2d.html'deki butonlarınızdan birine verin.
  • Renk adı olan bir renk yakalamaya çalışın. Hangisini buldunuz?
06 YouTube butonları, bu kez doğru

Geçen hafta bu üç butonu hızlıca kopyaladık. Bu kez onları sıfırdan, her seferinde tek bir özellik ekleyerek kuruyoruz. Her satırın butonda neyi değiştirdiğini görmek, CSS'i ezberlemek yerine okumayı öğretir. Sağdaki pencerede Sonraki'ye basın; kodda o anki satır yanar.

2d.html
<!DOCTYPE html>
<html lang="tr">
<head>
  <meta charset="UTF-8">
  <title>Butonlar</title>
  <style>
    body {
      font-family: Arial;
    }

    .abone-ol {
      background-color: rgb(200, 0, 0);
      color: white;
      border: none;
      height: 36px;
      width: 105px;
      border-radius: 2px;
      cursor: pointer;
    }

    .katil {
      background-color: white;
      border-color: rgb(41, 118, 211);
      border-style: solid;
      border-width: 1px;
      color: rgb(41, 118, 211);
      height: 36px;
      width: 62px;
      border-radius: 2px;
      cursor: pointer;
    }

    .takip-et {
      background-color: rgb(2, 158, 255);
      color: white;
      border: none;
      height: 36px;
      width: 90px;
      border-radius: 18px;
      font-weight: bold;
      font-size: 15px;
      cursor: pointer;
    }
  </style>
</head>
<body>
  <button class="abone-ol">ABONE OL</button>
  <button class="katil">KATIL</button>
  <button class="takip-et">Takip et</button>
</body>
</html>
adım adım
adım 0/0
Sıra sizde Kodu 2d.html olarak kaydedin ve üstünde değişiklik yapın.
  • Buton yazılarını kendi kanalınıza göre değiştirin.
  • Dördüncü bir buton ekleyin: Spotify tarzında yeşil ve yuvarlak bir "Takip et". Rengini kendiniz bulun.
  • Adım adım aracında Sonraki'ye basmadan önce butonun nasıl değişeceğini tahmin edin, sonra kontrol edin.
ekran görüntüsü 5
Not Defteri'nde 2d.html: CSS, head'in içindeki style bölümünde duruyor.
ekran görüntüsü 6
Kaydedip Chrome'da yenileyince (F5) üç buton böyle görünmeli.

Mac'te aynı akış: TextEdit'te 2d.html'yi düz metin olarak kaydedin (⌘ S), sonra Chrome'da sayfayı yenileyin (⌘ R). Kaydetmeden yenilerseniz eski hali görürsünüz.

07 Bölüm 1 meydan okuması: ürün kartı

Bu kez kodu hiç göstermiyorum, yalnızca sonucu. Aşağıdaki kartı a, p, strong ve button ile, butonlara class ve renk vererek kopyalayın. Bir sayfaya bakıp onu hangi etiketlerin oluşturduğunu çıkarmak, bu dönem en sık yapacağınız iş olacak.

hedef
Sıra sizde
  • Kartı urun-karti.html adında yeni bir dosyada yazın.
  • Fiyatın kalın olduğuna dikkat edin: hangi etiket?
  • Butonların renklerini renk laboratuvarında bulun.
Biliyor muydunuz? Tarayıcılardaki geliştirici araçlarının atası, 2006'da çıkan Firebug adlı bir Firefox eklentisidir. Deneyin: kendi dosyanızda bir kapanış etiketini silin ve ne olduğuna bakın. Biliyor muydunuz? Internet Explorer 8'in geliştirici araçlarının adı doğrudan "F12 Developer Tools"tu: araç, adını kısayolundan alıyordu.
2

Hareket ve kutu

dersin geri kalanı

Butonlarınız artık doğru kurulmuş durumda. Şimdi onlara tepki, derinlik ve nefes alacak yer veriyoruz; son blokta da bir sitenin içine DevTools ile bakıyoruz.

08 Tur: hover, active, transition

Aynı üç butonla devam ediyoruz. :hover farenin butonun üstüne geldiği anı, :active tıklandığı anı yakalar. transition ise değişimin bir anda değil, verdiğiniz sürede olmasını sağlar.

transition'ı butonun temel haline yazın, :hover'a değil. Temel haldeki kural butonda her zaman geçerli olduğu için geçiş hem fare gelirken hem de giderken çalışır. Yalnızca :hover'a yazarsanız fare ayrıldığı anda o kural geçersiz olur ve geçiş de onunla birlikte gider: buton yumuşakça değişir ama bir anda geri döner. Aşağıdaki iki butonun üstüne gelip ayrılın.

karşılaştırma
<style>
  button {
    background-color: white;
    border: 2px solid black;
    height: 40px;
    width: 150px;
    cursor: pointer;
  }

  .sadece-hover:hover {
    background-color: black;
    color: white;
    transition: background-color 0.6s, color 0.6s;
  }

  .temelde {
    transition: background-color 0.6s, color 0.6s;
  }

  .temelde:hover {
    background-color: black;
    color: white;
  }
</style>
<button class="sadece-hover">Sadece hover'da</button>
<button class="temelde">Temel halde</button>
tarayıcıda, üstüne gelip ayrılın

cursor: pointer fare imlecini ele çevirir ve "burası tıklanabilir" der. :focus-visible ise butona fareyle değil klavyeyle, Tab tuşuyla gelindiği anı yakalar. Ona belirgin bir çerçeve verdiğinizde fare kullanmayan biri sayfada nerede olduğunu her an görebilir.

2e.html, style'ın sonuna
    .abone-ol {
      transition: opacity 0.15s;
    }

    .abone-ol:hover {
      opacity: 0.8;
    }

    .abone-ol:active {
      opacity: 0.5;
    }

    .katil {
      transition: background-color 0.15s, color 0.15s;
    }

    .katil:hover {
      background-color: rgb(41, 118, 211);
      color: white;
    }

    .takip-et {
      transition: background-color 0.15s;
    }

    .takip-et:hover {
      background-color: rgb(0, 126, 204);
    }

    button:focus-visible {
      outline: 3px solid rgb(255, 196, 0);
      outline-offset: 2px;
    }
tarayıcıda, fareyle ve Tab ile
Sıra sizde 2d.html'yi 2e.html adıyla kopyalayın ve üstteki kuralları ekleyin.
  • Üstüne gelince 2 piksel yükselen, tıklayınca yerine oturan bir buton yapın: :hover'da transform: translateY(-2px), :active'te transform: translateY(0).
  • Geçişe sırayla ease-in, ease-out ve linear ekleyin (transition: transform 0.3s ease-in;). Farkı tek cümleyle yazın.
  • Tab tuşuyla butonlarınızda gezin. Hangisinde çerçeve görünüyor?
09 Tur: gölgeler

box-shadow bir kutunun arkasına gölge çizer. Değerleri sırayla okunur: önce yatay kayma, sonra dikey kayma, sonra bulanıklık, en son renk. Her birini değiştirdiğinizde gölgenin tek bir özelliği değişir; parçaların üstüne gelin.

box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.4);

Bir parçanın üstüne gelin; adı ve görevi burada yazacak.

Aynı dört değerle bambaşka gölgeler çıkar. Her pencerede yalnızca gölge satırı var:

yumuşak kart
/* büyük bulanıklık, soluk renk */
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
sert retro
/* bulanıklık 0: bu sayfanın pencereleri gibi */
box-shadow: 5px 5px 0 rgb(122, 43, 255);
neon
/* kayma yok, yalnızca parlak bir ışık */
box-shadow: 0 0 14px rgb(255, 46, 166);
iki gölge
/* virgülle ayrılan iki gölge */
box-shadow: 4px 4px 0 rgb(255, 46, 166), 8px 8px 0 rgb(122, 43, 255);

Yazıya gölge vermek için text-shadow var. Değerleri aynı sırayla okunur (yatay, dikey, bulanıklık, renk), yalnızca kutuya değil harflerin kendisine uygulanır.

2f.html
<meta charset="UTF-8">
<style>
  body {
    background-color: rgb(24, 20, 48);
    font-family: Arial;
  }

  .baslik {
    color: white;
    font-size: 40px;
    font-weight: bold;
    text-shadow: 3px 3px 0 rgb(255, 46, 166);
  }

  .parlak {
    color: rgb(182, 255, 46);
    font-size: 24px;
    text-shadow: 0 0 8px rgb(182, 255, 46);
  }
</style>
<p class="baslik">Merhaba</p>
<p class="parlak">Neon bir satır</p>
tarayıcıda
Sıra sizde
  • Ürün kartınıza gölge verin: önce butonlara, sonra fiyatın yazdığı paragrafa.
  • Siyah bir arka plan üzerinde neon bir buton yapın ve onu 2f.html'ye ekleyin.
  • text-shadow ile adınızı yazdığınız paragrafı retro bir başlığa çevirin.
10 Tur: DevTools ve kutu modeliEvde de yapılabilir

Şimdiye kadar kendi yazdığınız kodu okudunuz. DevTools ile herhangi bir sitenin kodunu okuyabilir, hatta kendi ekranınızda değiştirebilirsiniz. Değişiklikler yalnızca sizin tarayıcınızda olur ve sayfayı yenileyince her şey geri gelir; yani hiçbir şeyi bozamazsınız.

  1. Gerçek bir sitede, örneğin YouTube'da, bir butona sağ tıklayınControl tuşuna basılı tutarak tıklayın ve İncele'yi seçin. DevTools açılır ve butonun HTML'i seçili gelir.
  2. Sağdaki Styles panelini okuyun. En üstte butona uygulanan kurallar seçicileriyle birlikte duruyor; üstü çizili satırlar, başka bir kural tarafından ezildikleri için geçersiz.
  3. Bir değere tıklayıp değiştirin, örneğin background-color'daki renge. Buton o anda değişir. Rengin yanındaki küçük kareye tıklarsanız renk seçici açılır ve tam değeri okuyabilirsiniz.
  4. Computed sekmesine geçin. En üstteki iç içe kutular butonun kutu modelidir: içerik, iç boşluk, kenarlık ve dış boşluk.
ekran görüntüsü 7
Buton seçili, Styles panelinde class'ının kuralları görünüyor. DevTools İngilizce açılabilir; bu derste panellerin İngilizce adlarını kullanıyoruz.
ekran görüntüsü 8
Computed sekmesindeki kutu şeması: dışta margin, içte padding ve içerik.

Mac'te DevTools'u ⌥ ⌘ I ile de açabilirsiniz. Safari yerine Chrome kullanın; paneller ve adları bu anlatımla birebir aynı.

Kutu modeli

Tarayıcı sayfadaki her öğeyi bir kutu olarak çizer ve bu kutunun dört katmanı vardır. Aşağıdaki şema ABONE OL butonunun kutusu; katmanların üstüne gelin.

margin0 8 0 0
border0
padding10 16
ABONE OL

Bir katmanın üstüne gelin; adı ve görevi burada yazacak.

height ve width yerine padding

Geçen hafta ABONE OL'a sabit bir yükseklik ve genişlik verdik. Yazı uzarsa buton büyümez: yazı ya taşar ya da iki satıra bölünür. padding ise yazının etrafına boşluk ekler, böylece buton yazısıyla birlikte büyür. padding: 10px 16px'teki ilk değer üst ve alttaki, ikincisi sağ ve soldaki boşluktur. Butonların arasına da margin ile dış boşluk koyuyoruz.

2e.html, değişiklik
    .abone-ol {
      background-color: rgb(200, 0, 0);
      color: white;
      border: none;
      padding: 10px 16px;
      border-radius: 2px;
      cursor: pointer;
      margin-right: 8px;
    }
önce ve sonra
Sıra sizde
  • 2e.html'deki bütün butonlarda height ve width'i silin, yerlerine padding yazın.
  • Butonlardan birinin yazısını uzatın ve butonun yazısıyla birlikte büyüdüğünü görün.
  • DevTools'ta kendi butonunuzu inceleyin ve kutu şemasının ekran görüntüsünü alın. Ödevin son maddesi bu.
Biliyor muydunuz? text-shadow CSS2'de vardı, CSS 2.1'de çıkarıldı ve CSS3 ile geri döndü. Deneyin: bu sayfada bir pencereye sağ tıklayınControl ile tıklayın, İncele'yi seçin ve gölgesini değiştirin. Deneyin: bir butona transition: all 2s verin ve üstüne gelin.
11 Oyun alanı

Burada 6, 8 ve 9. blokların birleşmiş hali var: dört buton, hover ve geçişler, bir de gölge. Soldaki kodu değiştirdiğiniz anda sağdaki sayfa güncellenir. Denemek için rahat bir yer, ama asıl alışkanlık kendi dosyanızda yazıp kaydetmek olsun.

kod
önizleme
12 Yapay zekâ köşesievde

Bu kısmı evde yapın. Aşağıdaki isteği Antigravity'ye verin ve ajanın hazırladığı sayfayı tarayıcıda açın.

istek
Bana tek bir HTML dosyasında birbirinden farklı 10 buton hover efekti yap. Her birinin altına hangi CSS özelliklerini kullandığını yaz.

Sonra yapay zekâya sormadan üç efekt seçin ve her birinde hangi özelliğin ne yaptığını kendi cümlelerinizle yazın. Tanımadığınız bir özellik çıkarsa DevTools'ta o satırın yanındaki kutucuğu kaldırıp tekrar işaretleyin: neyin değiştiğini gözünüzle görürsünüz.

Yapay zekâ yazar, siz okursunuz.

13 Takıldınız mı?

Bu haftanın en sık hataları ve çözümleri aşağıda. Geçen haftanın listesi (uzantı, kodlama, kaydetmeyi unutmak) hâlâ geçerli: 1. haftanın Takıldınız mı? bölümü.

Bir etiketi kapatmayı unuttum, altındaki her şey bozuldu

Tarayıcı, kapanmayan bir etiketin sayfanın sonuna kadar sürdüğünü varsayar: kapanmayan tek bir <strong> altındaki bütün yazıları kalın yapar. Bozulmanın başladığı satırı bulun ve orada açılan etiketin kapanışını arayın. Hata avındaki ilk hata tam olarak buydu.

Class verdim ama stil uygulanmıyor

HTML'deki ad ile CSS'teki ad harfi harfine aynı olmalı: abone-ol, abone_ol ve Abone-ol üç ayrı addır. En güvenli yol, adı bir yerden kopyalayıp öbürüne yapıştırmak. Class'ın içinde boşluk da olmamalı; boşluk, iki ayrı class yazdığınız anlamına gelir.

CSS'te noktayı unuttum

.abone-ol yerine abone-ol yazarsanız tarayıcı sayfada <abone-ol> adında bir etiket arar. Böyle bir etiket olmadığı için kural hiçbir şeye uygulanmaz ve hata da vermez. Class seçicisinin başında her zaman nokta olmalı.

Geçiş yalnızca bir yönde çalışıyor

transition'ı :hover kuralına yazmışsınız. Butonun temel kuralına taşıyın, örneğin .katil { transition: background-color 0.15s; }. Böylece geçiş hem fare gelirken hem de giderken çalışır; 8. bloktaki karşılaştırmada farkı görebilirsiniz.

padding ile margin'i karıştırıyorum

padding kutunun içindeki boşluktur: arka plan rengi oraya da yayılır ve buton büyür. margin kutunun dışındaki boşluktur: saydamdır ve butonu komşularından uzaklaştırır. Emin olamadığınızda DevTools'un kutu şemasına bakın: yeşil katman padding, turuncu katman margin.

Gölgem görünmüyor

Koyu bir arka planda yarı saydam siyah bir gölge neredeyse hiç görünmez. Arka planı açın ya da gölgeye parlak bir renk verin, neon örneğindeki gibi. Değerleri de kontrol edin: kayma ve bulanıklık 0 0 0 ise gölge butonun tam arkasında kalır.

DevTools'ta yaptığım değişiklikler yenileyince kayboldu

DevTools'taki değişiklikler yalnızca o anki ekranda yaşar, dosyanıza yazılmaz. Beğendiğiniz değeri kopyalayıp kendi dosyanıza yapıştırın, kaydedin ve ancak sonra yenileyin.

Safari'de sağ tık menüsünde İncele yok

Safari'de önce geliştirici menüsünü açmanız gerekir: Safari > Ayarlar > Gelişmiş > "Web geliştiricileri için özellikleri göster". Yine de bu derste Chrome kullanmanızı öneriyorum; ekran görüntüleri ve anlatım Chrome'a göre.

14 Ödev

Gelecek derse web-ders klasörünüzü ve bir ekran görüntüsü getirin. İşaretlediğiniz maddeler bu tarayıcıda saklanır, böylece nerede kaldığınızı görebilirsiniz.

Alıştırmaların sırası ve buton örnekleri SuperSimpleDev'in ücretsiz HTML & CSS kursundan uyarlandı. Evde tekrar etmek isterseniz oradan izleyebilirsiniz: bu hafta 1. ile 4. dersler arası.

ekran görüntüsü