İ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.
-
Hafta 01geçen hafta
Web'e ilk adımHTML ve CSS temelleri, butonlar
-
Hafta 02bugün
Temeller ve hareketetiketler ve kurallar yeniden, hover, gölge, DevTools, kutu modeli
- Hafta 03
Yazımetin ve tipografi, Google Fonts
- Hafta 04
YapıHTML iskeleti, anlamlı etiketler, erişilebilirlik
- Hafta 05
Görsel ve displayresimler, inline ve block. Tur 1'deki "neden yan yana?" sorusunun cevabı burada.
- Hafta 06
Kutular içinde kutulardiv ve iç içe düzenler
- Hafta 07
Grid ve 1. lab sınavı
- Hafta 08
Flexbox
- Hafta 09
Position ve farklı ekranlar
- Hafta 10
Klonbir video sitesinin arayüzünü bitirmek, modern CSS
- Hafta 11
JavaScript'e girişconsole, DOM
- Hafta 12
Olaylar ve fonksiyonlartıklama, form doğrulama
- Hafta 13
Verifetch, JSON, API ve siteyi yayına almak
- Hafta 14
Sunumlar ve 2. lab sınavı
Plan değişebilir; tarihler akademik takvime göre duyurulacak.
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ı
Temelleri sağlamlaştırmak
yaklaşık 60 dakikaHer 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.
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.
Öğenin başladığı yer. Açılı ayraçla açılır, etiketin adı hemen ardından gelir: <a. Özellikler yalnızca buraya yazılır.
Etikete ek bilgi verir. href bağlantının gideceği adres, target ise sayfanın nerede açılacağı.
Özelliğin aldığı değer. Eşittirden sonra, çift tırnak içinde yazılır; "_blank" yeni sekme demek.
Açılış ve kapanış etiketleri arasındaki her şey. Sayfada görünen ve tıklanan kısım budur.
Öğenin bittiği yer. Açılışla aynı ad, başında bir eğik çizgi. Özellik almaz.
Açılış etiketi, içerik ve kapanış etiketi birlikte. "Sayfaya bir bağlantı ekleyin" dediğimizde bu satırların tamamını kastediyoruz.
<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>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:
- TextEdit'te yeni bir belge açın ve Biçim > Düz Metin Yap'ı seçin (⇧ ⌘ T). Kodu ancak bundan sonra yazın.
- ⌘ S ile kaydedin: adı
2a.html, düz metin kodlaması Unicode (UTF-8). TextEdit uzantıyı sorarsa ".html kullan" deyin. - Finder'da dosyayı seçip ⌘ I ile bilgi penceresini açın. "Ad ve Uzantı" kısmında adın gerçekten
.htmlile bittiğini görün. - 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.
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.
HTML fazla boşlukları ve satır sonlarını tek bir boşluğa indirir.
<p>Bugün çok güzel
bir gün.</p><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.
İç içe etiketler, açıldıkları sıranın tersiyle kapanır.
<p><strong><em>Quiz cuma</strong></em></p><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.
Bazı etiketlerin kapanışı yoktur: <br> ve <img> gibi.
<p>Satır bir<br></br>Satır iki</p><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.
Özellik değerleri çift tırnak içine yazılır.
<a href="https://www.google.com.tr>Google'da ara</a>
<p>Bu paragraf nereye gitti?</p><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.
Etiket ve özellik adları küçük harfle yazılır.
<style>.kaydet { background-color: gold; }</style>
<BUTTON CLASS="Kaydet">Kaydet</BUTTON><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.
<!-- yorum --> sayfada görünmez ama kaynak kodda durur.
<p>Görünen paragraf.</p>
<!-- Bu not kapanmadı
<p>Bu paragraf da yorumun içinde kaldı.</p><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:
.htmldosyasında<!-- -->,.cssdosyası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.
<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>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.
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
Bir satırdan sonra her şey kalın. Kalınlığı başlatan etiket nerede kapanıyor?
İkinci satırda iki etiket iç içe açılıyor. Hangisi önce kapanmalı?
"İlk satır" ile "İkinci satır" arası neden bu kadar açık? Kapanışı olmayan bir etiket arayın.
Okulun sitesine giden bağlantı sayfada yok. Adresin etrafındaki tırnakları sayın.
Google bağlantısı mavi değil ve tıklanmıyor. Özelliğin adını harf harf okuyun.
Bir etiket bağırıyor. Etiket adları nasıl yazılır?
<p>Duyuru: <strong>bu hafta quiz yok.</strong></p>
<p><em><u>Cuma 13.30, laboratuvar</u></em></p>
<p>İlk satır<br>İkinci satır</p>
<a href="https://www.isikun.edu.tr">Okulun sitesi</a>
<a href="https://www.google.com.tr" target="_blank">Google'da ara</a>
<button>Katıl</button>
1 kapanmayan strong 2 ters sırayla kapanmalı 3 br'nin kapanışı yok
4 eksik tırnak 5 herf değil href 6 küçük harf
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.
Kuralın kime uygulanacağını söyler. Baştaki nokta "bu bir class" demek: HTML'de class="abone-ol" yazan her öğe bu kuralı alır.
Kuralın gövdesini açar ve kapatır. Kapanmayan tek bir süslü parantez, altındaki bütün kuralları bozar.
Neyin değişeceğini söyler, burada arka plan rengi. Özellik adları İngilizcedir ve kelimeler tireyle birleşir.
Özelliği değerinden ayırır. Satırı "arka plan rengi: kırmızı" diye okuyun.
Özelliğin alacağı değer. Burada kırmızı, yeşil ve mavinin 0 ile 255 arasındaki miktarları.
Satırın bittiğini söyler. Unutursanız tarayıcı bu satırı sonrakiyle birleştirir ve ikisini birden yok sayar.
- 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ılyerinekatil. - CSS'te not bırakmak için
/* yorum */yazılır. HTML'deki<!-- -->CSS'in içinde çalışmaz.
<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>- İ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.
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.
background-color: rgb(200, 0, 0);
- 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?
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.
<!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>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.
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.
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.
- Kartı
urun-karti.htmladında yeni bir dosyada yazın. - Fiyatın kalın olduğuna dikkat edin: hangi etiket?
- Butonların renklerini renk laboratuvarında bulun.
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.
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.
<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>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.
.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;
}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'datransform: translateY(-2px),:active'tetransform: translateY(0). - Geçişe sırayla
ease-in,ease-outvelinearekleyin (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?
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.
Kutu gölgesi. Butona, paragrafa, sayfadaki her kutuya verilebilir.
Gölgenin sağa ne kadar kayacağı. Eksi bir değer sola kaydırır.
Gölgenin aşağı ne kadar kayacağı. Eksi bir değer yukarı kaydırır.
0 keskin, sert bir kenar verir. Sayı büyüdükçe gölge yumuşar ve yayılır.
Gölgenin rengi. rgba'daki dördüncü sayı saydamlıktır: 0 görünmez, 1 tamamen dolu. Doğal gölgeler çoğunlukla yarı saydam siyahtır.
Aynı dört değerle bambaşka gölgeler çıkar. Her pencerede yalnızca gölge satırı var:
/* büyük bulanıklık, soluk renk */
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);/* bulanıklık 0: bu sayfanın pencereleri gibi */
box-shadow: 5px 5px 0 rgb(122, 43, 255);/* kayma yok, yalnızca parlak bir ışık */
box-shadow: 0 0 14px rgb(255, 46, 166);/* 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.
<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>- Ü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-shadowile adınızı yazdığınız paragrafı retro bir başlığa çevirin.
Ş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.
- 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.
- 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.
- 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. - Computed sekmesine geçin. En üstteki iç içe kutular butonun kutu modelidir: içerik, iç boşluk, kenarlık ve dış boşluk.
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.
Bir katmanın üstüne gelin; adı ve görevi burada yazacak.
Yazının kendisi. width ve height verdiğinizde ölçülen kutu budur.
İçerik ile kenarlık arasındaki boşluk. Arka plan rengi buraya da yayılır; butonu büyük gösteren bu katmandır.
Kenarlık. ABONE OL'da border: none olduğu için kalınlığı 0; KATIL'da ise 1 piksellik mavi bir çizgi.
Kenarlığın dışındaki boşluk. Saydamdır ve öğeyi komşularından uzak tutar. Burada yalnızca sağda 8 piksel var.
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.
.abone-ol {
background-color: rgb(200, 0, 0);
color: white;
border: none;
padding: 10px 16px;
border-radius: 2px;
cursor: pointer;
margin-right: 8px;
}2e.html'deki bütün butonlardaheightvewidth'i silin, yerlerinepaddingyazı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.
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.
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.
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.
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.
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.
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ı.