Ana Sayfa | English Blog | Seminer TV | Dil Cookie Sil  Blog'u Mail ile takip et!       
Daron Yöndem - CSS
bir yazılımcının tasarıları...
 Tuesday, October 02, 2007

İster internet üzerinden yayınlanan makalelerde olsun ister blog sitenize yollayacağınız bir ipucunda, maalesef sayfanıza HTML kodu veya herhangi bir kod yerleştirmek istediğinizde Visual Studio içerisinden alışık olduğumuz renklendirmeyi almamız pek mümkün olmuyor. Bu durumda çoğu sitede ekran görüntülerinden oluşan resimlerle dolu makaleler görüyoruz. Ben bugüne kadar bu sorunu biraz uğraştırıcı bir yöntemle çözüyordum :)

Bugünden sonra ise CopySourceAsHtml adındaki bir Visual Studio 2005 add-in uygulamasını kullanacağım. Yaptığım testlerde epey başarılı sonuçlar aldım. Uygulama direk Visual Studio içerisindeki renklendirme üzerinden HTML kodu yaratabiliyor. Programı aşağıdaki adresten indirebilirsiniz.

http://www.jtleigh.com/people/colin/software/CopySourceAsHtml/

Tuesday, October 02, 2007 7:43:28 PM (GTB Standard Time, UTC+02:00)  #    Comments [1]   .NET Framework 3.0 | AJAX | ASP.NET | CSS | HTML | JavaScript | Silverlight | Visual Basic 2005 | Visual Studio 2005  | 
 Wednesday, May 09, 2007

Web tasarımları ile uğraşırken HTML ve CSS kodlarını düzenleme aşamasında en sıkıntılı sorunlardan biri farklı tarayıcılarda aynı görsel sonucu almaya çalışmaktır. Bazen bu sorunu çözmek hiç mümkün olmayabilir. Sitemizin tüm görsel özelliklerini harici bir CSS dosyasında tuttuğumuzu düşünürsek, aslında tek yapmamız gereken farklı internet tarayıcıları için farklı CSS dosyaları hazırlayarak söz konusu tarayıcılar ile sitemiz açıldığında uygun CSS dosyasını sayfamıza ekliyor olmak.

Sayfamıza bir CSS dosyası eklemek için aşağıdaki kodu kullanacağız.

<style>
@import url("/ie.css");
</style>

Kod içerisinde import CSS komutunu kullanarak sayfaya adresini belirttiğim CSS dosyasının yüklenmesini sağlamış oluyorum. Sıra geldi tarayıcının Internet Explorer olup olmadığını anlamaya.

<!--[if IE]>
< style>
@import url("/ie.css");
</style>
<![endif]-->

Yukarıdaki kodun renginin yeşil olmasının nedeni aslında standart tarayıcılar tarafından kodun işlenmeyeceği anlamına geliyor. Başlangıcında <!-- ve sonunda --> olan bölgeler HTML kodlarında devre dışı bırakılmış sayılır. O nedenle yukarıdaki kod FireFox'da çalışmayacak. Oysa Internet Explorer kodun ilk kısmında yer alan [if IE] şart komutunu algılayacaktır. Böylece eğer tarayıcı Internet Explorer ise söz konusu CSS dosyası sayfaya eklenecek, değilse bu satırlar devre dışı sayılacağı için eklenmeyecek. Ayrıca isterseniz farklı Internet Explorer sürümleri için de kontroller yaparak farklı CSS dosyaları ekleyebilirsiniz.

<!--[if gt IE 5]>
< style>
@import url("/ie.css");
</style>
<![endif]-->

Yukarıdaki kodun ilk satırında yer alan gt komutu "daha yuksek" anlamına geliyor. Yani eğer tarayıcının Internet Explorer sürümü 5'den yüksek ise kod çalıştırılacaktır. Bunun gibi aşağıdaki farklı karşılaştırma komutlarını da kullanabilirsiniz.

gt - daha yuksek
gte - esit veya daha yuksek
lt - daha dusuk
lte - esit veya daha dusuk

Bana bu kadarı yetmez, ben kullanıcının tarayıcısının Safari, Camina, Konqueror vs olup olmadığını da anlamak istiyorum diyorsanız çözüm JavaScript. JavaScript ile kullanıcı tarafında gerekli kontrolleri yaparak sayfanıza uygun CSS dosyasını ekleyebilirsiniz. Gerekli kontrolleri yapacak olan uygun JavaScript fonksiyonunu http://www.quirksmode.org/js/detect.html adresinde bulabilirsiniz.

Kolay gelsin...

Wednesday, May 09, 2007 2:23:56 PM (GTB Standard Time, UTC+02:00)  #    Comments [0]   CSS | HTML | JavaScript  | 
 Friday, May 04, 2007

Bir web tasarımın ön grafik tasarımı yapılırken en önemli nokta birbiri ile uyumlu renkleri yakalayabiliyor olmaktır. Genel olarak sanat olarak nitelendirebileceğimiz bu ahengin aslında kısmen de olsa matematiksel sistemlerle de tanımlamak mümkün. Sıcak ve soğuk renklerin birbirleri ile veya kendi içlerindeki uyumları ile ilgili geliştirilmiş derin araştırmalara ve algoritmalara girmeyeceğim. Biraz daha pratiğe yönelerek aşağıda adresi yer alan siteyi ziyaret etmenizi rica ediyorum.

http://www.todotoh.com/rgb/rgbanalysis.aspx

Site, kendisine verilen başka bir adresteki web sitesinin ekran görüntüsünü alarak söz konusu web sitesinde ağırlıklı olarak kullanılmış olan renklerin bir şemasını çıkartıyor. Şemayı çıkartırken hemen kullanabilmeniz için Hex kodlarını yaratmayı da unutmuyor. Böylece beğendiğiniz web sitelerinin renk şemalarını elde edebiliyor ve birbiri ile uyumlu renkleri anında yakalamış oluyorsunuz. Bahsettiğimiz web sitesi John K. tarafından benim “How to take screenshot (thumbnail) of a web site with ASP.NET 2.0?” makalemdeki kod üzerinden gidilerek geliştirildi. (Umarım bir gün söz konusu makaleyi Türkçe’ye çevirmek için zaman ayırabileceğim)

Sizlerle tanıştırmak istediğim bir diğer web uygulaması da www.colormatch.dk sitesinde yer alıyor. Seçilen bir renk üzerinden otomatik olarak uyumlu renkleri bulmayı amaçlayan web sitesinin gerçekten başarılı bir iş çıkardığını söyleyebilirim.

Mayasoft Bilişim Akademi’sindeki son Web Tasarım sınıfımdan öğrencim sevgili Ersin Kılıç’a beni colormatch.dk ile tanıştırdığı için buradan ayrıca teşekkür etmek istiyorum.

Thursday, May 03, 2007 11:51:41 PM (GTB Standard Time, UTC+02:00)  #    Comments [0]   CSS | Genel | HTML | Photoshop  | 
 Sunday, April 22, 2007

CSS'in varlığı başlı başına bir optimizasyon ihtiyacından kaynaklanır. HTML kodları arasında onlarca defa aynı görsel tanımlamaları yapmama amacıyla CSS kullanırız. Böylece hem iş yükümüzü azaltmış oluruz hem de istemci tarafına gönderilen toplam veri azalır ve performans artar. Aynı durum CSS içerisinde de söz konusu. Yazdığımız CSS kodunun ne kadar doğru ve kısa olduğu performans açısından önemli, fakat diğer yandan bu optimizasyon bazen kodun okunabilirliliğini de azaltabiliyor.

İki arada bir derede kaldığımız bu noktada projeler yayına girmeden CSS kodlarını optimize eden ek yazılımlar kullanılıyor. Projeye ait CSS dosyası optimizasyon işleminden geçirildikten sonra internet ortamına aktarılıyor, oysa geliştiricilerin üzerinde çalıştıkları dosya ise eski optimize olmayan, kolay okunabilir dosya oluyor. Bu durumun tek kötü yanı üzerinde sıkça değişiklik yapılan projelerde her yükleme öncesi ek olarak optimizasyon işleminin yapılmasının gerekmesi.

Uzun lafın kısası, esasen benim bu yazıyı yazmamın nedeni sizi www.cleancss.com ile tanıştırmak. Siteye direk kes-yapıştır yöntemi ile CSS dosyanızı aktarabileceğiniz gibi internet ortamındaki CSS dosyanızın konumu belirterek de kullanabilirsiniz. Sistemin yaptığı işlem tüm CSS kodlarınızı kontrol ettikten sonra seçtiğiniz seçeneklere uygun olarak kodunuzu optimize etmek. Optimizasyon işlemi sonrası yeni CSS kodunuzu sitenin alt tarafında bulabileceğiniz gibi tüm yapılan değişikliklere ait açıklamalar da bir liste olarak sıralanıyor. Benim yaptığım denemelerde %30-%40 arası değerlerde optimizasyon yapılabildi. Başarılı fakat yeterli değil.

Aşağıdaki CSS kodumu optimizasyon motoruna aktardım.

span {
border-width:2px;
border-color:black;
border-style:dashed;
}

Aldığım sonuç şu şekilde oldu;

span {
border-width:2px;
border-color:#00;
border-style:dashed;
}

Optimizasyon amacıyla bu CSS sınıfı içerisinde yapılan tek değişiklik renk değeri ile ilgili. Yüzlerce renk tanımladığımız bir CSS dosyası içerisinde bu ve bu gibi değişiklikler biriktiğinde ciddi bir fark oluşuyor. Diğer yandan www.cleancss.com adresindeki araç CSS dosyası içerisinde ikişer defa tanımlanmış CSS sınıflarını kontrol etmek gibi ek özelliklere de sahip. Fakat sadece CSS optimizasyon araçlarını kullanmak yeterli değil. Gelin bir de benim yaptığım optimizasyon sonrası yukarıdaki CSS sınıfının son haline bakalım.

span {
border:2px black dashed;
}

İşte bu kadar. Yukarıdaki CSS sınıfımı ek olarak CSS optimizasyon motoruna aktardığımda oluşan son hali de aşağıdaki gibi.

span {
border:2px #00 dashed;
}

Sonuç muhteşem. En yukarıdaki CSS sınıfımızdan buralara geldik. Benim tavsiyem CSS optimizasyon araçlarını kullanmanızdan yana. Çok kısa sürede ciddi optimizasyon sağlayabiliyorlar fakat maksimum optimizasyon için sizin de kodlarınıza bir göz atmanız şart.

Sunday, April 22, 2007 12:51:01 PM (GTB Standard Time, UTC+02:00)  #    Comments [0]   CSS  | 
 Saturday, April 21, 2007

Sayfada kaydırma çubuğu ile web sitenizi gezen kullanıcılara sayfanızın belirli bölümü sürekli göstermek isteyebilirsiniz. Buna çok basit bir örnek olarak sitenizin menüsü veya sitenize almış olduğunuz bir reklam çalışması verilebilir. Kullanıcı yukarı ve aşağıya doğru sayfayı gezerken sizin belirlediğiniz içerik yine sizin belirlediğiniz bir konumda ekranda sürekli gözükecektir.

Bahsettiğimiz işlevselliği sağlamak için CSS komutlarından faydalanacağız. Sayfamızda sürekli belirli bir konumda gözükmesini istediğimiz kısmı bir DIV katmanı içerisine yerleştireceğiz ve söz konusu DIV katmanına CSS özellikleri olarak konumlandırma koordinatlarını ve sabit kalma komutunu vereceğiz. Gelin ilk olarak içerisinde bir resim bulunan DIV katmanımızı hazırlayalım.

<div>
    <
img src="http://daron.yondem.com/tr/images/cert.gif" alt="" />
</
div>

Katmanımız içerisinde bir resim bulunuyor. Siz kendi web sitenizde bu katman içerisinde her türlü HTML içerik yerleştirebilirsiniz. Bu bir reklam (Banner) çalışması olabileceği gibi sitenizin menüsü de olabilir. Fakat unutmayın ki DIV katmanı içerisine yerleştirdiğiniz HTML objelerinin dış objelerden bağımsız olması gerekiyor. Yani bir HTML tablonun bir satırını alıp bu katman içerisine yerleştiremezsiniz. Eğer böyle bir ihtiyacınız varsa söz konusu satırı tablodan ayırıp ayrı bir tablo olarak düzenlemeniz gerekir.

Bir sonraki adımda katmanımıza satır içi CSS özellikleri vererek ekran gözükmesi gereken konuma ait bilgileri aktaracağız.

<div style="top:10px;right:10px">
    <
img src="http://daron.yondem.com/tr/images/cert.gif" alt="" />
</
div>

CSS özelliği olarak top özelliğine 10px değeri vererek katmanın ekranın en üst noktasından 10px mesafede yer alacağını belirledik. Aynı şekilde right özelliğine de 10px değeri vererek katmanın ekranın sağından 10px mesafede gösterileceğini belirlemiş olduk. Yukarıdaki örneği bu hali ile çalıştırdığınızda maalesef çalışmadığını göreceksiniz. Yapmamız gereken son bir ayar daha var. Konumlandırma ile ilgili tüm ayarlarımızı yaptık fakat bunlara ek olarak kullandığımız katmanın konumlandırma metodunu da belirtmemiz gerekiyor.

<div style="position:fixed;top:10px;right:10px">
    <
img src="http://daron.yondem.com/tr/images/cert.gif" alt="" />
</
div>

CSS özelliği olarak position özelliğine fixed değerini vererek söz konusu katmanın sayfada gösterim metodu olarak sürekli aynı konumda gösterileceğini belirtmiş olduk. Artık kodumuzu çalıştırdığımızda herhangi bir sorun ile karşılaşmayacağız.

position:fixed CSS düzenlemesi Internet Explorer 7.0 ve FireFox 2.0+ internet tarayıcılarında doğru olarak çalışıyor. Maalesef Internet Explorer'ın eski sürümlerinde bu konuyla ilgili bir sorun vardı. Tabi ki her sorun gibi bu sorunun da çok sayıda çözümü var. Hatta Internet Explorer 6.0 ve 5.0 sürümleri için farklı farklı çözümler mevcut. Fakat ben yazımı burada sonlandırarak eski teknolojiye yatırım yapmayacağım. Sizin de yapmanızı tavsiye etmem :)

Saturday, April 21, 2007 3:30:30 PM (GTB Standard Time, UTC+02:00)  #    Comments [0]   CSS | HTML  | 
Copyright © 2010 Daron Yöndem. Tüm hakları saklıdır.