HTML’de bir dokümanı kullanıcıya indirtmek için bir bağlantı verdiğimizde parantez içinde “sağ tılayın ve çıkan menüden farklı kaydet’e basın” ibaresini yazardık. Bu konuda farklı çözümler var; tarayıcıya eklenti kuranlar, .htcacces’den ayar yapanlar filan. Tabi kullanıcılar için çok iyi bir deneyim değil ve kod yazanlar için ayrı bir uğraş gerektiren çözümler. W3C bunu fark etmiş olmalı ki bize basit ve güzel bir çözüm üretmiş.

HTML5 download özniteliği

Kullanımı çok basit;

<a href="dersin_dokumani.pdf" download>Dersi indir</a>

Yukarıda görüldüğü gibi gayet basit bir çözüm var.

Ayrıca bu özniteliğe bir değer atayıp indirilen dosya ismini belirleyebiliyoruz.

<a href="dersin_dokumani.pdf" download="html5">Dokümanı indir</a>

Dinamik üretilen bağlantılar için güzel bir çözüm bence;

<a href="rapor_20141223.pdf" download="rapor">Raporu indir</a>

Ayrıca inidirilecek dokümanın formatını değiştirebiliyoruz.

<a href="http://fatihhayrioglu.com/last-child-secisi/index.html" download="last_child.txt">last-child seçicisi makalesini indir(txt)</a>

Örnek: last-child seçicisi makalesini indir(txt)

Dosya eğer bağlantı ile aynı domain değilse Firefox eski indirme alışkanlıklarına dönüyor.

Tarayıcı Desteği

Chrome explorer Firefox
14 - 20

Mobil Tarayıcılar

Android Mobil Safari Chrome
4.4 - 39

Kaynaklar

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