Sahibinden.com’da angularjs ile çalışıyoruz. Bazı sorunlarla karşılaşıyoruz. Bunları buraya yazmanın benzer sorunları yaşayanlar için güzel bir kaynak olacağını düşündüm.

Başlıkta tam olarak açıklayamadığım sorunu şöyle anlatabilirim; Bir inputumuz olsun, biz bu inputa girilen değeri başka bir alanda kullanıcı yazarken göstermek isteyelim. İşte sorun da tam bu noktada oluyor. Eğer bu değerini alacağımız inputa bir form kontrolü tanımlandı isek mesela ng-minlength=”5” başka bir alanda göstermek istediğimiz bu girdi değeri bu içerik 5 karakter olana kadar görüntülenmiyor. Sorun input doğrulanmadığı için değeri model’e yazılmamasından kaynaklanıyor.

Çözüm için bir direktif yazmak gerekiyor. Şu kod işimi gördü.

Angularjs 1.3 sürümünde bu sorun çözülmüş bu arada :D

 Kaynak

Biz web geliştiricilerin kullandığı makineler genelde genel ortalamaya nispeten iyi makinelerdir. Normal kullanıcının yaşadığı bazı sorunları biz kendi makinemizde yaşamayız. Genelde kod yazarının gelen soruna karşı cevabı “abi bende sorun olmuyor”

İnternetin hızının yavaş olduğu durumları simule etmek için bir program arayışına giridim. Şirkette Mac Os işletim sistemini kullandığı için, aradığım programda Mac Os’ta çalışan bir program olmalıyıdı. İlk önerilen program “Network Link Conditioner”

Bu programı indirmek için Xcode > Open Developer Tool > More Developer Tools… yolu ile bu programı indirme sayfasına gidin. Bu sayfaya girmeden önce sizden Apple Id ve şifrenizi isteyecektir.

ncl01

Siteye giriş yaptıktan sonra karşınıza çıkan son Xcode için Hardware IO Tools .dmg uzantılı dosyayı indirip kurun.

ncl02

Programı açtığınızda aşağıdaki gibi bir ekran ile karşılaşacaksınız.

ncl03

Profil selectbox’ın mevcut seçenekleri DSL, EDGE, 3G vd. seçebiliyoruz. Ayrıca kendi profilimizi oluşturup test edebiliyoruz. OFF’u ON haline getirdiğimizde bağlantımız seçtiğimiz internet hızına düşüyor. Dikkat ON durumunda unutmak sıkıntı oluyor. Eski Dialup’lı günleri tekrar yaşamak hoş değil :D

Kaynaklar

Daha önce CSS3 seçicileri kısmında biraz anlattım. Burada biraz daha detay bilgi vereceğim.

:last-child seçicisi bir html seçicisi ile birilikte çalışıyor. Yani HTML’de p, h3, li gibi html seçicileri kullanmalıyız.

ul li:last-child a{
    border-right:none;
}

peki biz bunu farklı elemanlar için kullanbilirmiyiz? Evet

Evrensel seçici(*) ile sorunumuzu çözdük.

Bunun dışında belli bir sınıf tanımı yapılarakta bir çözüm oluşturulabilir.

Ancak bu sınıflı çözümün bir sorunu var. Eğer son elemandan sonra bir eleman daha var ise seçim yapılmıyor ve sorun oluyor.

CSS’in güzelliklerinden birisi seçicilerinin gücüdür. Ben burada bunlardan birinin ipucunu göstermek istiyorum.

Normalde bir iş yaparken aradan bir elemanın o atamanın dışında kalması için :not seçicisini kullanıyoruz.

Peki birden fazla değil seçicisi kullanabilirmiyiz ve nasıl?

Evet kullanabiliriz işte örnek

Kaynak

Bu özellikler blok-level ve yerine konulabilir element(örneğin resim) içerik alanının asgari / azami genişliğini tanımlar. max-width margin, padding ve kenarlıkları içermez.

width değeri daha geniş olsa bile max-width değerini aşamaz. Bu ilginç bir kuraldır. Ancak min-width değeri eğer max-width değerinden büyükse bu değeri uygular, yani min-width değeri baskındır.

min-width ve min-height element genişliğinin belirli bir aralıkta olması için beraber kullanılır.

max-width ve width ilişkisi

max-width ve width aynı elemente ayı değerlerde uygulanmamalıdır, birisi diğerine baskın olur. Örneğin width değeri 150px ve max-width değeri 60px olarak atanmışsa

.alan{
    max-width: 60px;
    width:150px;
}

Tanımında width tanımı anlamsız kalır. Şöyle bir kullanım ise mantıklıdır.

.alan{
    max-width: 120px;
    width:80%;
}

Genişliği en fazla 120px olan bir elemanımız var. Elemanımızın genişliği kapsayıcı elemanın % 80’i kadardır.

 Uyumlu(Responsive) resim ve max-width

Esnek bir resim boyutu sağlamak için max-width değerini %100 ve height:auto tanımlamak gerekir.

img {
    max-width: 100%;
    height: auto;
}

kodu tüm uyumlu web kodlarında mevcuttur.

min-width ipucu

Mesela bir site genişliğini yüzde olarak vermek istiyoruz ama belli genişlikten daha küçük olması durumunda içeriğin büzülmesini istemiyoruz.

.ana-kapsayici {
    width:90%;
    min-width:600px;
}

tanımı bu işimizi görür. Zamanında bunun için javascript kodu yazardık. Hey gidi günler.

Uyumlu web kodlarken max-width özelliğinin çok kullanışlı tarafından yararlanıyoruz.

 Kaynaklar