• Forum vBulletin altyapısından Xenforo altyapısına geçirildi, bu sebeple eski şifreleriniz ile foruma giriş yapamayacaksınız, parolamı unuttum adımından mailiniz ile şifre sıfırlayarak giriş yapabilirsiniz.

    Üyeliklerinde geçerli bir mail adresi olmadığı için sıfırlama yapamayacak kullanıcılar forum kullanıcı adlarını ve yeni şifrelerini yazarak info@maxigame.org adresine şifre sıfırlamak istediklerine dair bir mail göndersinler şifrelerini sıfırlayıp mail adreslerini güncelleyeceğiz. Şifreniz sıfırlandıktan sonra foruma giriş yapıp tekrar istediğiniz gibi değiştirebilirsiniz.

Css Giriş & Genel Dersleri

CottonCandy

Atlas Evren
Aileden
Aktiflik
K.Tarihi
26 Tem 2009
Mesajlar
1,087
Puanı
472
Konum
M.K.ATATÜRK
[RESIZE=900]
db74zr.png
[/RESIZE]



CSS Nedir?

Html sayfaları biçimlendirmek için kullanılan teknolojiye CSS denir. Aşağıda sizlere css kodlarını html kodları ile birleştirmeyi, css yazım kurallarını ve ebeveyn mantığını anlatmaya çalışacağım.


Css Yazım Kuralları ve Standartları

seçici { özellik : alacağı değer }

Kod:
[COLOR=#0000cd]p { color : [/COLOR][COLOR=#ff0000]red;[/COLOR][COLOR=#0000cd] }

[/COLOR]
Yukarıda yazılmış olan kod tüm paragraflardaki yazı renginin kırmızı olacağını söylüyor. Noktalı virgül ";" kullandığımıza dikkat etmişsinizdir. Özellikleri birbirinden ayırmak için koymalısınız. En son özelliğin sonuna koymaya gerek yok ama alışkanlıktan ben hep koyarım. Üstünde bulunan açıklamaya göre seçicimiz "p" yani paragraf, özellik "color" yani yazı rengi ve bu özelliğin alacağı değer de "red" yani kırmızı olarak ayarlanmış.


Eğer bir seçiciye birden fazla özellik vermek isterseniz;

Kod:
p{
    color:red;
    font-size:12pt;
    text-decoration:underline;
}

şeklinde yapabilirsiniz.

Eğer istediğiniz birden fazla seçiciye aynı özellikleri uygulamaksa;

Kod:
p,h1,span{
    color:red;
    font-size:12pt;
    text-decoration:underline;
}

eklinde yapabilirsiniz. Yani araya "," koymanız gerekmektedir.

Css Kodlarını Sayfamıza Dahil Etme

Satır Düzeyinde Css Kodu Ekleme

Css özelliğini elementin içerisinde "style" özelliği ile belirtebilirsiniz. Öncelik kuralına göre diğerlerine göre ilk sıradadır. Yazım şekli şöyledir;

Kod:
[B]<p style="color:red;">CottonCandy</p>[/B]
Sonuç:
CottonCandy

Sayfa İçi Css Kodu Ekleme


Sayfanın en üstünde "head" etiketleri arasına "style" etiketleri yerleştirilir ve css kodları bunların arasına yazılır. Bu şekilde yapılmış biçimlendirmeye sayfa içi biçimlendirme diyebiliriz.

Kod:
<!DOCTYPE HTML>
<html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            p{
                color:red;
                text-decoration:underline;
            }
        </style>
    </head>
    <body>
        <p>CottonCandy</p>
    </body>
</html>

Sonuç:
CottonCandy

Sayfa Dışı (Harici Dosyadan) Css Kodu Ekleme

Harici bir stil dosyası oluşturulur ve uzantısı ".css" olacak şekilde ayarlanır. "link" etiketi içerisinde "href" özelliğinde dosyanın yolu belirtilir. Aşağıda göreceli bir adres ile yol gösterilmiştir. Css dosyasında kodlar aynen yazılır.


index.html

Kod:
<!DOCTYPE HTML>
<html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" href="stil.css"/>
    </head>
    <body>
        <p>CottonCandy</p>
    </body>
</html>

stil.css

Kod:
p{
    color:blue;
    text-decoration:underline;
}

Sonuç :


CottonCandy

Seçiciler

Id(Tekil) Seçicisi

X)Html
dökümanlarda elementlerin içerisinde bir id tanımlaması yapılır ve elemana bir isim verilir.(<div id="tasiyici"></div>) (X)Html kurallarına göre bir id isminden sayfada yalnızca bir tane olmalıdır. Bu yüzden tekil seçici dememiz gayet anlamlı olacaktır. Css içerisinden id tanımlaması yapılmış bir elemana ulaşmak gayet basittir. Id tanımlaması önüne "#" diyez işareti konarak bu tanımlama yapılabilir.

Kod:
[B]#tasiyici{[/B]
[B]    color:#00FF00;[/B]
[B]    width:300px;[/B]
[B]}[/B]

Class Seçicisi:

Class seçicisi ile birden fazla elemana uygulamak istediğiniz biçimlendirmeleri tek seferde yazıp istediğiniz kadar kullanabilirsiniz yada bir elemana birden fazla class uygulayabilirsiniz.


Html Kod:
Kod:
<div id="katman1" class="sari_yazi"></div>
<div id="katman2" class="siyah_zemin sari_yazi"></div>

Css Kod:

Kod:
#katman1{
    width:100px;
    height:100px;
}
#katman2{
    width:250px;
    height:250px;
}
.siyah_zemin{
    background-color:yellow;    
}
.sari_yazi{
    background-color:yellow;    
}

Örnekte katmanların boyutları farklı olduğu için id tanımlamaları içerisinde boyutlandırmalar yapıldı. Yazı rengi her ikisinde aynı olduğundan tek class tanımlaması ile bu işi hallettik, aynı zamanda katman2'de birden fazla class uygulayarak hem yazı hem zemin rengi değiştirildi.

WYG2jm.png



Seçim işlemlerinde css, aynen bir soy ağacı mantığı ile çalışır. Yukarıda bir html dökümanın dom yapısı(soy ağacı) görülmektedir. Soy ağacının en üstünde "html" etiketi bulunuyor. Yani "html dede" demekte bir sakınca yok. "head" ve "body" etiketleri "html" in çocukları ve diğerleri de torunları olarak isimlendirilir. Bu yaptığımız tanımlar istediğimiz elemana ulaşabilmek için gereklidir.

Çocuk Seçici (">")

Bu seçim şekli ile bir elementin bir alt düzeyindeki element seçilir. Şöyle açıklayalım, 6 numaralı p elementini seçmek için;

Kod:
body>p{
    color:red;    
}

"body" nin çocuğu olan "p" elementini seç demiş olduk. Eğer şöyle deseydik;

Kod:
span>em{
    color:red;
}

Hem 12 numaralı, hem de 13 numaralı "em" elementi seçilmiş olur. Ama şöyle demiş olsaydık;

Kod:
body>span>em{
    color:red;
}

Bu şekilde yazılırsa sadece 12 numaralı "em" elementi seçilmiş olur. Sanırım çocuk olayını anladık.

Torun Seçici (Boşluk Karakteri)

Kod:
body em{
    color:red;    
}


şeklinde bir şeçim yapıldığında 10,12,13 numaralı "em" elementleri seçilmiş olur. Bence daha fazla örneğe gerek yok anlaşılmıştır diye düşünüyorum.

Css pseudo (sözde) etiketler, sınıflar ve seçiciler

Pseudo element ve pseudo sınıf arasındaki farkı anlamaya çalışarak başlayalım. Aslında söylenmek istenen şey yapısı gereği bir etikete mi benziyor yoksa seçiciye mi? Mesela :first-line ilk satır anlamına geliyor ve öyle olmasa da bir etiket gibi davranıyor yada :hover fare üzerine geldiğinde gibi bir anlamı var ve bu da onu bir sözde sınıf yapıyor.


Bence özetle şöyle söylenebilir, css'e işlevsellik katan özellikler.



  1. Elementler
  2. :first-line
  3. :first-letter
  4. :before
  5. :after
  6. Sınıflar
  7. :link
  8. :active
  9. :visited
  10. :hover
  11. :focus
  12. :enabled
  13. :disabled
  14. :checked
  15. Seçiciler
  16. :root
  17. :empty
  18. :not
  19. :nth-child
  20. :nth-last-child
  21. :nth-of-type
  22. :nth-last-of-type
  23. :last-child
  24. :first-child
  25. :first-of-type
  26. :last-of-type
  27. :only-child
  28. :only-of-type

Elementler

81NnqA.png


Sınıflar

DJyXzZ.png


Seçiciler

mLJlOY.png


Sprite Yöntemi Nedir?

Fare olayına bağlı olarak çalışan zemin resmi değiştirme olayı sırasında gecikmeler olabiliyor. Tabi ki resim dosyaları ayrı ise, sprite tekniğinde resmin her hali tek bir dosyada tutulur ve resmin belli bir bölgesi gösterilir. Bu da resmin yüklenmesi sırasında gerçekleşen gecikme problemini ortadan kaldırır. Çünkü tüm görünümler başlangıçta yüklenmiş durumdadır.


Dikkat edilmesi gereken önemli noktalar şunlardır; öncelikle genişlik ve yüksekliği belirtilmiş olan, block düzeyi bir eleman olmalıdır. Neme lazım overflow özelliğini "hidden" yaparız ki eleman dışına taşan bir şey olursa gizlenir. Son olarak background-position özelliğini kullanarak, resmin hangi bölgesinin gösterileceğini belirtiriz. Negatif değerler vererek resmi yukarıya ve sola çekebilirsiniz.

Kod:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        a.sprite{
            display:block; 
            width:99px; 
            height:179px; 
            background:url(birlesik.gif) no-repeat 0px 0px; 
            overflow:hidden;}
        a.sprite:hover{
            background-position:-99px 0px;}
    </style>
</head>
<body>
    <a href="" class="sprite"></a>
</body>
</html>

- - - Güncellendi - - -

css ilgili soruları olan sorabilir işden gelince cevaplarım :)
 
Geri
Üst