Daha önce ‘Relative + Absolute ile yorum kutusu’ baÅŸlıklı bir yazı yazıp, yazı da -ucundan da olsa- CSS’de pozisyonlamaya deÄŸinmiÅŸtim. Bu yazı da -biraz da gelen istekler üzerine- iÅŸe bir daha teknik açıdan bakmak, ve ardından z-index’e rahatsız etmeden dokunmak istiyorum.
Bir odanız olduğunu düşünün, küçük şirin bir oda. Bu güzel odayı parkeleyip üzerine bir de halı koymak istiyorsunuz.

Biliyorsunuz ki, parkeleri istediğiniz yere döşeme gibi bir şansınız yok. Tüm parçaları sırayla yan yana sıkı bir şekilde dizerek, ileride oluşabilecek bir ayrılma, kayma gibi durumu ortadan kaldırmış olursunuz. Parkeleri bir güzel dizdikten sonra, almış olduğunuz halınızı odanızın her tarafına serebilirsiniz, burada tamamen özgürsünüz.
CSS’in 1. versiyonundan beri kullanılan Float elementinin yardımıyla, aynı parke parçalarını yan yana dizerek oluÅŸturduÄŸunuz döşeme gibi, div’lerinizi yan yana dizerek sayfanızı oluÅŸturabilirsiniz. Float bu nedenle çok kolaydır, aynı tablolarda olduÄŸu gibi, öğeleri yan yana diziyor, ve içeriÄŸini dolduruyorsunuz. Fakat float aynı zamanda çok da zor olabilir, eÄŸer gerçekten zor layoutlarla karşılaşırsanız.
EÄŸer CSS ile ilgileniyorsanız, Float’u duymamış olmanız mümkün deÄŸildir. Yine de ayrıntılı bilgi isterseniz, W3Schools‘u ziyaret edebilirsiniz, zira biz hemen konumuza gelmek istiyoruz.
DediÄŸim gibi, sevgili W3C birinci versiyondan beri varolan Float’tan sonra, ikinci versiyonda yukarıdaki durumu aklına getirmiÅŸ ve bizleri düşünüp ‘position’ diye bir özellik çıkarmış.
Peki bu özellik bize nasıl yardımcı oluyor? Position, odamıza istediğimiz yere halımızı sermemize yardımcı oluyor!
Yani ‘position’ ile herhangi bir öğeyi, deÄŸerleri atayarak sayfamızın herhangi bir yerine pozisyonlama ÅŸansımız var.
‘Static’ ‘position’ özelliÄŸinin standart deÄŸeridir. Bu deÄŸeri atadığınız bir öğe herhangi bir yere kaydırılmadan olduÄŸu yerde durur. EÄŸer ’static’ deÄŸeri atanmış bir div’e ‘top’,'left’,'right’,'bottom’ deÄŸerlerini atarsanız, bu deÄŸerler görmezlikten gelinecektir.
‘Relative’ özelliÄŸini atadığınız bir öğe, bulunduÄŸu yerden itibaren kaydırılacaktır. Fakat bu deÄŸeri atadığınız bir öğe, aÅŸağısındaki öğelere etki etmeyecektir. Yani örneÄŸin yukarıdan 10px kaydırdığınız bir div aÅŸağısında bulunan diÄŸer bir div’i aÅŸağıya kaydırmayacak, bilakis onun üzerine kayacaktır. Relative ile ilgili daha fazla bilgiye bu makaleden ulaÅŸabilirsiniz.
#metin { position: relative; top: 15px; right: 0; }
Bu deÄŸerleri atadığınız bir öğe, diÄŸer öğelerin etkisi olmadan sayfa başından itibaren kaydırılmaya baÅŸlanacaktır. ‘Relative’ gibi yine ‘Absolute’un diÄŸer öğelere etkisi olmayacaktır.
#metin { position: absolute; top: 0; right: 0; }
Bu ÅŸekildeki bir stil, önceden oluÅŸturduÄŸumuz ‘metin’ stilinin içindeki metni sayfanın en üst-saÄŸ köşesine pozisyonlayacaktır.
#metin { position: absolute; bottom: 0; right: 5px; }
Bu şekildeki diğer bir stil ise, metnimizi sayfanın en altına pozisyonlayacak, sağ köşeden 5 piksel kaydıracaktır.
‘Fixed’ deÄŸeri öğemizi aynı ‘absolute’ gibi pozisyonlar, fakat sayfa aÅŸağıya kaydırıldığında öğe de sayfa ile birlikte aÅŸağıya kalmaz, bilakis bulunduÄŸu yerde asılı kalır. Sayfadaki diÄŸer öğeler aÅŸağıya inseler bile, öğe inmeyecek ve pozisyonlandığı yerde kalacaktır.
Dikkat: Internet Explorer 7 bu özelliÄŸi hatalı yorumladığı için, herÅŸey doÄŸru olmasına raÄŸmen, ‘position:fixed;’ deÄŸerini atadığınız bir öğe sayfa ile birlikte aÅŸağı kayacaktır.
‘Absolute’, ‘Relative’ veya ‘Fixed’ özelliklerinden birini atadığınız bir öğeyi bulunduÄŸu yerden kaydırmak için bu dört deÄŸerden yardım alırız. Bir stilimizde en fazla iki adet deÄŸer bulunabilir, fakat karşıt deÄŸerler (örn. top ve bottom) aynı stilde bulunmaz.
Normal deÄŸerlerde ‘Top’ bir öğeyi yukarıdan aÅŸağıya kaydırırken, ‘Bottom’ deÄŸeri öğeyi aÅŸağıdan yukarıya doÄŸru kaydırır. Aynı ÅŸekilde ‘Right’ bir öğeyi saÄŸdan sola doÄŸru kaydırırken, ‘Left’ soldan saÄŸa doÄŸru kaydırır.
#metin { position: absolute; bottom: 10px; left:10px; }
Bu stili atadığımız bir öğe, aşağıdan 10 piksel yukarıda ve soldan 10 pixel sağda duracaktır.
#metin { position: absolute; top: 50px; right:50px; }
Bu stili atadığımız bir öğe, yukarıdan 50 piksel aşağıya, sağdan 50 piksel sola kaydırılacaktır.
#metin { position: absolute; top: -10px; right:-10px; }
Bu stili atadığımız bir öğe, yukarı-sağdan 10 piksel sayfa dışına çıkacaktır. Değerler eksi (-) olduğu için, kaydırma da ters yönlere olacaktır.
İki adet div’imizin olduÄŸunu düşünün. Her ikisi de ‘position:absolute’ yardımı ile pozisyonlandırılmış, fakat üst üste duruyorlar;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #div1 { width:200px; height:200px; background:#666; position:absolute; top:50px; left:50px; } #div2 { width:200px; height:200px; background:#777; position:absolute; top:70px; left:70px; } |
1 2 | <p id="div1">Bu div1!</p> <p id="div2">Bu da div2!</p> |
Sayfamızda test ettiğimizde görüntü şu şekilde olacaktır;

Gördüğünüz gibi, ‘div2′ ‘div1′in üzerinde duruyor. Z-index ile hangi öğenin ilk sırada yer alacağına karar verebilirsiniz. Bu örnekte, div1′i div2′nin üzerine taşımamız için, z-index’in yardımına ihtiyaç duyuyoruz;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #div1 { width:200px; height:200px; background:#666; position:absolute; top:50px; left:50px; z-index:2; } #div2 { width:200px; height:200px; background:#777; position:absolute; top:70px; left:70px; z-index:1; } |

Gördüğünüz gibi, CSS’in bizlere sunduÄŸu, kullanılmayı bekleyen bir çok özellik var. Bize düşen ise sadece kullanmak.
Etiketler: css, pozisyonlandırma, xhmtl, z-index
YORUMLAR
TOPLAM 19 YORUM.
Yorumlarınız değerlidir. Bu yazıyla ilgili düşüncelerinizi belirtebilir, yardım talebinde bulunabilirsiniz.
Hackover, (#) - 4.7.2006
Güzel bir makale teşekkürler.
Süleyman Şentürk, (#) - 5.7.2006
Döktürmüşsün yine :) Teşekkürler anlatımın için.
giraybatiturk, (#) - 5.7.2006
güzel bir makale olmuş,eline sağlık ;)
Ali BEÅžKAZALI, (#) - 5.7.2006
Güzel hazırlamışsın eline sağlık.
Cenk Gurel, (#) - 6.7.2006
elinize sağlık, çok güzel ve açık bir anlatım.
aziz (ihtiyar), (#) - 7.7.2006
Sayfana bayıldım;
Emekli teknik öğretmenim anlatımlarına hayran kaldım.Mehmet DoÄŸan’dan sonrada senin müdavinim olacağım.İki blog denemem var ikisindede sana link verip seni anlatacağım.Bu güzel iÅŸe devam et…….Senden öğreneceÄŸimiz daha çok ÅŸey var.SaÄŸlıcakla kal………..
ahmet alp balkan, (#) - 8.7.2006
muhammet bu yolda tam gaz…
bi sen varsın bi cemshid var tasarımcıya yol gösteren. insanın okuyası geliyo senin yazdıklarını be.
zafer, (#) - 15.7.2006
Muhammet Bey ellerinize saÄŸlık…
Selam Almanya’ya…
Fatih HayrioÄŸlu’nun not defteri » CSS ile konumlandırma(positioning), (#) - 15.9.2006
[...] Muhammed Sevim [...]
CSS ile konumlandırma(positioning) | Rasim Coşkun | Web Tasarım | Web Design, (#) - 22.10.2007
[...] Muhammed Sevim [...]
deli dana, (#) - 2.6.2008
selam, yazınızda göremedim, herhangi bir tabloyu sayfa altına sabitlemek için ne yapmalıyız ? ekran çözünürlüğü ne olursa olsun bir div tablonun sayfa altında sabit konumlanmasını istiyorum.
Web Standartları Nedir - yücel eroğlu - web tasarımı ve internet kültürü, (#) - 11.7.2008
[...] CSS, pozisyonlandırma ve Z-index http://www.muhammetsevim.com/yazi/css-pozisyonlama-ve-z-index/ [...]
zafer, (#) - 31.10.2008
CSS’de en çok zorlanılan bölüm pozisyonlandırma olsa gerek, bu yüzden çok faydalı ve güzel bir yazı olmuÅŸ.
fahri atasoy, (#) - 30.12.2008
ie6 da z-index problemi yaşıorum bu konuda bişeyler yazar mısnız?
ali, (#) - 18.1.2009
muhammet abi teÅŸekkür ederiz final haftamızda çok yardımcı olsun ellerine saÄŸlıkkk….
Açýlýr Menünün Sayfanýn Arkasýnda Yer Almasý - Joomla! Türkiye - Joomla! Grup Türkiye, (#) - 6.4.2009
[...] ayarlaman gerekmekte.En azýndan yapýlan hakkýnda fikir sahibi olmak için z-index ile alakalý þu yazýyý incelemenizde fayda var. __________________ Yürüyen [...]
öğrenme nesneleri, (#) - 30.8.2009
z-index in ne olduÄŸunu arıyordum. Basit bir ÅŸekilde çok güzel anlatmışsınız, teÅŸekkürler…
dunkof, (#) - 15.9.2009
tamda aradığım şeydi thanx
Türkçe CSS Kaynakları ve Yazıları « WebeGe Blog, (#) - 12.12.2009
[...] CSS, konumlama ve Z-index [...]
Yorumunuzu ekleyin
E-posta adresiniz hiçbir zaman yayınlanmayacaktır. Temel HTML metin şekillendirilmesi izinlidir. Sadece bu konuyla ilgili yorum yapmayı unutmayınız. Teşekkürler :)