Merhaba...
Html sayfalarda satır içi elemanlar varsayılan olarak soldan sağa yerleşirken , BLOK elemanlar yukarıda aşağıya doğru yerleşirler. Float özelliği ile bu yerleşim yönleri değiştirilebilir..
Float akış anlamına gelir. Elemanların hangi yönde yerleşeceğini belirler. RIGHT ve LEFT olmak üzere 2 farklı yön belirleyebilir. Varsayılan değeri normal akışa müdahale etmeyen "none" değeridir..
Elemanlara float:left değeri verildğinde yerleşimler soldan sağa doğru olur. Özelliğin uygulandığı eleman satır içi eleman ise , görünümde bir değişiklik olmaz çünkü varsayılan yerleşim yönüdür. Ancak BLOK elemanlara uygulanırsa , bu elemanlar yukarıdan aşağıya doğru değilde , satır içi elemanlar gibi soldan sağa yerleşirler.
div { float:left; width:50px;height:50px; background-color:skyblue;}
<div> Div 1 </div>
<div> Div 2 </div>
<div> Div 3 </div>
Yukarıdaki divlere FLOAT:LEFT özelliği verildiği için soldan sağa doğru yerleşirler. Aslında INLINE-BLOCK elemanlara dönüşmüş olurlar.
Kapsayıcı içindeki elemanlara FLOAT özelliği eklendiğinde, kapsayıcı içeriğe göre otomatik uzamayacaktır. Bu durumda kapsayıcıya yükseklik değeri eklemeniz gerekebilir...
Elemanlara float:right değeri verildğinde yerleşimler sağdan sola doğru olur. Başka deyişle FLOAT:RIGHT özelliği alan eleman sağdan sola yerleşecektir.
div { float:right; width:50px;height:50px; background-color:skyblue;}
<div> Div 1 </div>
<div> Div 2 </div>
<div> Div 3 </div>
Yukarıdaki divlere FLOAT:RIGHT özelliği verildiği için sağdan sola doğru yerleşirler. Aslında sağdan yerleşmeye başlayan INLINE-BLOCK elemanlara dönüşmüş olurlar.
Kapsayıcı içindeki elemanlara FLOAT özelliği eklendiğinde, kapsayıcı içeriğe göre otomatik uzamayacaktır. Bu durumda kapsayıcıya yükseklik değeri eklemeniz gerekebilir...
Bazen farklı elemanlara left ve right değerleri verilebilir. Bu durumda left değeri alanlara sola , right değeri alanlar sağa yerleşirler..
div.left { float:left; width:50px;height:50px; background-color:skyblue;}
div.right { float:right; width:50px;height:50px; background-color:skyblue;}
<div class="right"> Div 1 </div>
<div class="left"> Div 2 </div>
<div class="right"> Div 3 </div>
<div class="left"> Div 4 </div>
Yukarıdaki divlere HTML'deki normal akıştan farklı olarak , left ve right özelliklerine göre sola yada sağa yerleşirler..
Html sayfada bir elemana FLOAT değeri normal akıştan ayrılmışi olur. Dolayısyla kendisinden sonra gelen elemanlara eğer FLOAT değeri verilmemişse bu elemanlar FLOAT uygulanmış eleman yokmuş gibi yerleşirler... Bu tür durumlarla karşılaşmamk için , Float özelliğini bitirmek için sıoradaki elemana CLEAR özelliği verilir. Böylece float akışı bitirilmiş olur..
olmak üzere 3 değer alır..
div.left { float:left; width:50px;height:50px; background-color:skyblue;}
div.normal {height:70px; background-color:orange;}
<div class="left"> Div 1 </div>
<div class="left"> Div 2 </div>
<div class="normal"> Div 3 </div>
Yukarıdaki ilk 2 div'e float left dğeri verildiği için yanyana sıralanırlar. Ancak 3. div (turuncu) herhangi bir float değeri almadığı için , ilk 2 div'den farklı olarak sayfanın normal akışına göre yerleşir. Dolayısıyla üstteki bozuk görüntü ortaya çıkar.. Bunu engellemek için turuncu div'e clear özelliği eklenmelidir. Kendinden önceki elemanlar sadece left yerleşimi aldıkları için , clear:left yazmak yeterli olacaktır. Bu artık left akışını bitir ve normal yerleşime dön anlamına gelir.
O zaman yukarıdaki görüntüyü düzeltmek için .normal class'lı turuncu dive clear ekleyelim..
div.normal {clear:left;height:70px; background-color:orange;}
Turuncu div'e clear uygulandığı için kendinden önceki FLOAT akışı sonlanmış olur ve sayfanın normal akışına göre yerleşim devam eder.
Görüşmek üzere...
Toplam 30 Makale
Lütfen yorumlarınızda saygılı, yapıcı ve anlaşılır bir dil kullanın.
Küfür, hakaret ya da spam içerikler onaylanmaz.