Başlangıç > Nuh Gönültaş > css dersleri ile şekil çizmek çok kolay!

css dersleri ile şekil çizmek çok kolay!

 

tasarımlarımızı xhtml ve css’e geçirirken bazen çok basit şekilleri bile kimi zaman resim olarak kaydederek tasarımlarımıza ekliyoruz. oysa bu davranış bize ekstra bir “http isteği” olarak dönmüş oluyor. daha önce css sprite’ların kullanım alanları yazımda bu istekleri azaltarak performansı nasıl yükselttiğimiz konusuna az da olsa değinmiştim. bu yazıda ise minik ve basit resim dosyalarından kurtularak http isteklerini minimum düzeye çekecek ve sitelerimizin performansını arttıracak. pingdom ile performansınızı ölçmeniz mümkün.

dertlere derman css border
başlıktan da anlayabileceğiniz gibi bu şekilleri çizmek için elimizdeki en önemli özellik border olacak. i̇stediğiniz şekli çizmek için border’ları solid yapmalı ve genişliklerini ayarlamalıyız.
şimdi ufak bir örnekle border’ları nasıl ayarlamamız gerektiğini görelim.

.cisim{ width:0; height:0; line-height:0; border-top: 50px solid magenta; border-right: 100px solid green; border-bottom: 100px solid red; border-left: 50px solid yellow; } <span class="cisim"></span>

farklı renkteki border'lar
farklı renkteki border’lar

burada rahatlıkla görebilmeniz için border değerlerini çeşitli renklerde tanımladım. boyutsuz olan span elemanının etrafında üçgensel olarak 4 farklı bölge oluşuyor. i̇şte bu bölgeleri kullanarak çeşitli dörtgenler, içbükey çokgenler ve üçgenler çizerek tasarımlarımızı tamamlayacağız

 

 

konuşma balonu örneği
tasarımlarda artık sıkça karşılaşılan elemanlardan biri de konuşma balonları. genelde blog sitelerinin yorumlar bölümünde, twitter kullanan kişilerin kişisel sitelerinde sıklıkla karşımıza çıkıyor konuşma balonları. tasarımların olmazsa olmaz elemanı olan bu konuşma balonlarının yazı yazılan kısmını yapmak genelde imaj dosyası gerektirmeyen bir şekilde yapılabiliyor. lakin balonun ucundaki oklar css şekilleri tekniğini çözene kadar imaj dosyası ile yapılmaktaydı. artık bu imaj dosyasını kullanmadan maksimum iki satırlık bir css stili ile hem bandwith’ten hem de performanstan kazanç sağlayacağız.

ilk adım
ilk adım

gördüğünüz gibi konuşma balonumuz hazır. balonumuzu dizayn ettikten sonra bu balonu 2 parçaya ayırarak çalışmamıza devam edeceğiz.

ikinci adım
ikinci adım

okun biçimlendirilmesi
i̇ki parçaya bölünen elemanda en çok okun biçimlendirilmesi konusuna yoğunlaşacağız. çünkü diğer eleman basit bir div biçimlendirilmesi ile oluşturulabiliyor. önce okun değerlerini belirleyelim

üçüncü adım
üçüncü adım

gördüğünüz gibi 25 e 25 piksellik bir ok tasarladım. arkaplan olarak ben bildirgeçte arka plan resmi olmadığından beyaz kullandım.

kodlamaya giriş
öncelikle oku oluşturmak için bir span elemanı yaratıyoruz.

<span class="ok"></span>

şimdi bu oku biçimlendirmek için head etiketleri içinde stilimizi tanımlıyoruz.

<style> .ok{ width:0; height:0; line-height:0; border-top: 25px solid #999999; border-right: 25px solid white; border-bottom: none; border-left: none; } </style>

yarattığımız span’ın genişlik, yükseklik ve satır genişliği yüksekliğini 0 belirterek bu şekilleri oluşturabilmemiz mümkün oluyor. daha sonra border-top tanımlaması ile okumuzun yükseklik değerini ve hangi renkde olacağını belirtiyoruz. border-right ile de genişlik değerini ve okun arka planında bulunan renk değerini giriyoruz. eğer arka planda resim kullandıysanız bu değeri transparent olarak girmelisiniz.

gördüğünüz gibi okumuz oluştu. şimdi yapmamız gereken ise ana kutucuğun altına bunu iliştirmek. bunun için ben 300px genişliğinde bir p tanımladım. ve bunu balon’umun içine koydum. sonra da okumu bu p elemanından sonra yerleştirdim.

<div class="balon"><p>lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p><span class="ok"></span></div>

okumuzda da bazı düzenlemeler yaparak balonumuzu son haline sokuyoruz:

<style> .balon{ width:340px;} .balon p{ width:300px; line-height:20px; background:#999; color:#fff; font-size:20px; padding:20px; margin:0; float:left; } .ok{ width:0; height:0; line-height:0; border-top: 25px solid #999; border-left: none; border-bottom: none; border-right: 25px solid white; float:left; margin: 0 0 0 250px; } </style>

i̇şte bu kadar basit! artık basitçe şekiller üretebilir ve tasarımlarınızda kullanabilirsiniz. benim kullandığım birkaç başka şekil de var. bunları da inceleyelim

tüm şekillerin çizimi
tüm şekillerin çizimi

şekil 1
basit bir üçgendir. tüm border değerlerine eşit ölçülü sayılarda atama yapacağız fakat border-top hariç hepsi renksiz olacaktır. border-top ise bizim şeklimizin rengini verecektir.

<span class="cisim"></span> <style> .cisim{ width:0; height:0; line-height:0; border-top: 50px solid #999; border-left: 50px solid transparent; border-bottom: 50px solid transparent; border-right: 50px solid transparent; } </style>

şekil 2
her ölçüsü değişik olan bir üçgendir. border değerlerinin tümü farklı ölçülerdedir. border-top cismin rengini belirler, diğerleri ise arkaplan rengini belirler.

<span class="cisim"></span> <style> .cisim{ width:0; height:0; line-height:0; border-top: 50px solid #999; border-left: 20px solid transparent; border-bottom: 50px solid transparent; border-right: 100px solid transparent; } </style>

şekil 3
bayrak gibi bir görüntüsü olan bu şekil nerede işinize yarar bilinmez ama çokgenlerin oluşturulması konusunda bir örnek olsun.

<span class="cisim"></span> <style> .cisim{ width:0; height:0; line-height:0; border-top: 50px solid #999; border-left: 50px solid #999; border-bottom: 50px solid #999; border-right: 50px solid white; } </style>

şekil 4
bu şekil gördüğünüz gibi şekil 1’in tam tersi. bu yüzden şekil 1’de border-top değerini cismin rengi olarak göstermişken burada border-bottom’da cismin rengini belirliyoruz.

<span class="cisim"></span> <style> .cisim{ width:0; height:0; line-height:0; border-top: 50px solid white; border-left: 50px solid white; border-bottom: 50px solid #999; border-right: 50px solid white; } </style>

css ile basit şekilleri bu şekilde çizebilmek mümkün. biraz yaratıcılık biraz da css hakimiyeti ile daha karışık şekiller de çizmek tabi ki mümkün.

Reklamlar
Kategoriler:Nuh Gönültaş
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: