Float ve Clear özellikler ile konumlandırma
CSS ile sayfa planlamak için kullanılan yöntemlerden bir tanesidir float ve clear özelliklerinin kullanımı. Float bir elementi Normal Akışın dışına çıkarmak için kullanılan bir yöntemdir. Bir biri ardına sıralanmış elementlere float uygulandığında elementler eğer yeterli alan varsa yan yana dizilirler. Float Dinamik Göreceli Konumlandırma gibidir ve bu amaçla kullanılabilir.
Clear özelliği ile float uygulanmış element’den sonraki elementlere float etkisini durdurmamız mümkündür. Örneğin iki paragrafınız olsun ve bunlardan sadece ilkini float uygulanmış elementin yanına koymak istiyorsunuz, bu durumda ikinci paragrafa clear özelliği atadığınızda bu element float uygulanmış elementin altında konumlanacaktır.
float
Yapısı : float: <deger>
Aldığı Değerler : left | right | none | inherit
Başlangıç değeri: none
Uygulanabilen elementler: tüm elementler
Kalıtsallık: Yok
Internet Explorer 4+
Netscape 4+
Opera 3.6+
W3C’s CSS Level 1+
CSS Profile 1.0
Float ilk olarak resimleri konumlandırmak için kullanılmıştır. Resimlerin metinlere göre konumunu belirlemek için HTML 1.0 ile birlikte align özelliği kullanıldı. Böylelikle resimler metinlere göre sola veya sağa konumlandırması imkanı sağlanmış oldu. Bu kullanım float ile benzerdir. Resimleri konumlandırmak için kullanılan bu yöntem daha sonra CSS’in olaya el atması ile tüm elementler için kullanıla geldi. Ayrıca float özelliği çoklu kolon oluşturmak için de kullanılır.
img {
float:left;
margin:0 4px 4px 0;
}
float:left ataması yapılan resim sola dayanacak ve metin bu resmin etrafını saracaktır.
<img src="resim.gif" width="150" height=150 alt="resim bilgisi" /> <p>... paragraf metni ... </p>
Bir elemente float uygulandığında, float uygulanan kutu kapsayıcı kutunun veya diğer float kutusunun dış kenarının sağına veya soluna kaydırılabilir. Float uygulanan kutu, dökümanın normal akışının dışına çıkacaktır. Dökümandaki normal kutular float elementi burda yokmuş gibi normal akışına devam edeceklerdir.
Aşağıdaki şekilde görüldüğü gibi başlangıçta normal akış içinde bulunan 1.kutu float:right özelliğ ile sağ tarafa kaymış ve normal akıştaki elementlerin akışı 1.kutu yokmuş gibi devam etmiştir.

Aşağıdaki şekilde float:left tanımlaması yapılarak 1.kutu kapsayıcı kutunun en soluna dayanmıştır. Diğer iki kutu ise normal akışına devam etmektedir.
p {
float:left;
width:200px;
margin:0;
}
img {
float:left;
margin:0 4px 4px 0;
}
Burada her iki elemente de float uygulanarak metnin resmi sarmasına son verilmiştir. Bu çoklu kolon oluşturma tekniğinin basit bir örneğidir. Float uygulanan her element satır boyunca yan yana dizilecektir.

Eğer kapsayıcı kutu genişliği her üçünün sığacağı kadar değil ise sondaki kutu kendiliğinden aşağı kayacaktır. Eğer kutular farklı yükseklikte ise yükseliği düşük olan kutudan sonra gelen kutu bunun altında devam edecektir. Bu durumu düzeltmek için clear özelliği kullanılır bunu aşığda göreceğiz.

clear
Yapısı : clear: <deger>
Aldığı Değerler : none | left | right | both
Başlangıç değeri: tanımsız
Uygulanabilen elementler: tüm elementler
Kalıtsallık: Yok
Internet Explorer 3+
Netscape 4+
Opera 3.6+
W3C’s CSS Level 1+
CSS Profile 1.0
Float ile sık sık kullanılan diğer özellik clear’dir. Float elementinin etkisinden kurtulmak için clear özelliğini kullanırız. Float uygulanmış kutu sonra gelen elementleri etkiler bu etkiden kurtulmak için clear özelliği kullanılır.
clear özelliğinin kullanımına örnek verecek olursak. Eğer float uygulanmış element’ten sonraki elementin içeriği float uygulanmış kutunun yüksekliğinden küçük ise bir sonraki element de bu float uygulamasından etkilenecektir. Biz bu etkiyi kaldırmak için clear özelliğini kullanırız. Clear özelliği üst kutu ile araya gerekli mesafeyi koyacaktır, bir bakıma üst kutu ile araya üst margin değeri ataması yapmaktır.

yukarıdaki kodlamda sorun yok.
sorun ul li tanımından gibi görünüyor
li standart ikonu görünüyor ie de ondan olmasın
sidebar.php deki kodlar çıkmamış onlarda şu şekilde;
http://img172.imageshack.us/img172/8626/sidebaray7.jpg
merhabalar
bir wordpress teması editliyorum. sidebarda sadece kategoriler ve arşivlerin yan yana olması için şu kodları kullandım:
–sidebar.php–
‘, ”, ”, FALSE, ‘id’, FALSE, FALSE, -1, FALSE); ?>
————-
–css–
#emre {
padding: 0px;
margin: 0px;
width: 300px;
color: #FFF;
overflow: hidden;
}
#emre-sol {
float: left;
padding: 0px;
margin: 0px;
width: 150px;
color: #FFF;
display:inline;
}
#emre-sag {
float: right;
padding: 0px;
margin: 0px;
width: 150px;
color: #FFF;
}
#emre-3 {
float: left;
margin: 0px;
padding: 0px;
width: 300px;
color: #FFF;
}
—
fakat firefoxta şu şekilde gözükürken
http://img153.imageshack.us/img153/716/firefoxez5.jpg
ie6 da ise şöyle
http://img153.imageshack.us/img153/6295/ie6dg3.jpg
sorun ie nin sol margin ve float kullanımda margin-left değerini iki kere uygulaması IE’da İkikat görülen Margin Problemi ve Çözümü
#solkolon {
width:200px;
margin-left:250px;
display:inline;
margin-top:40px;
float: left;
background-color:#333333;
}
display:inline; eklemen yeterli
body {
margin:0;
background:url(../Images/bg_site.png);
background-repeat: repeat-x;
}
#Container {
margin:0 auto;
width: 700px;
height:600px;
background-image:url(../Images/MasterSite.png);
background-repeat:no-repeat;
background-position:left top;
}
#top{
width:700px;
margin:0;
padding:0;
}
#solkolon {
width:200px;
margin-left:250px;
margin-top:40px;
float: left;
background-color:#333333;
}
#sagkolon {
width:235px;
height: 237px;
margin-top: 10px;
margin-left: 15px;
float:left;
background-color:#ccc;
}
——————–
2 kutuyu yan yana koymak için uğraş veriyorum firefox da doğru çalışan kod ie 6 da sorun çıkarıyor çok kafa patlatmama rağmen sorun nerde bir türlü bulamadım :(
site
gerçekten cok güzel bir anlatım.Bu konuyu tam olarak anladığım kanısındayım.teşekkür ederim.Yazılarınızı takip diyorum.
Erhan görütüden anlaşıldığı kadarı ile kutuların genişliğinde bir sorunun var.
http://www.fatihhayrioglu.com/?p=13
bu makaleyi okumanı öneririm.
Ancak bir sorun daha var ki en sağdaki kutu niye oraya gittiği bunu bu görüntüden anlamam zor ancka kodları görmem gerekir bunu için.
kolay gelsin.
Ben Float:Left ile 4 adet kutucuğu yan yana dizdim. Genişlik vererek bu 4 kutuyu sayfaya ortaladım. Fakat IE 5.x sürümlerinde görüntü bozuluyor (alttaki resimde var). IE 6′da, Opera ve Firefox’da sorun yok. Sizce neden olabilir?
http://img87.imageshack.us/img87/3152/csshatart5.gif
Çok Yararlı bir kaynak ellerine sağlık