2011-09-07 19 views
5
<style> 
.cl {clear:both;} 
.block {} 
.left {float:left;} 
</style> 

<div class="block"> 
    <div class="left">Title 1</div> 
    <div class="left">Value 1</div> 
    <div class="cl"></div> 
</div> 
<div class="block"> 
    <div class="left">Title 2</div> 
    <div class="left">Value 2</div> 
    <div class="cl"></div> 
</div> 

her .block sonunda <div class="cl"></div> eklemekten kaçının mümkün mü? Ben bazen bunu düzeltmek biliyorum .block üzerinde overflow:hidden kullanılarakNasıl temizlenir: ikisi de; doğru şekilde?

+0

Eğer .block 'gibi bir şey kullanarak denediniz: sonra {clear: both} '? Daha önce ya da sonra seçmenleri kullanmayı hiç denemedim, bu yüzden nasıl çalıştıklarını bilmiyorum. – animuson

cevap

1

Bunu yapabilirdi:

<style> 
    br {clear:both;} 
</style> 
<div class="block"> 
    <div class="left">Title 2</div> 
    <div class="left">Value 2</div> 
</div> 
<br/> 

ikinci seçenek re:

<style> 
    .container br {clear:both;} 
</style> 
<div class="container"> 
    <div class="block"> 
     <div class="left">Title 2</div> 
     <div class="left">Value 2</div> 
    </div> 
    <br/> 
</div> 
+1

belgenizde * Tüm * sonları için geçerli değildir bu yüzden gerçekten olsa molası için sınıf adını kullanmalıdır. Ama eğer bunu yaparsanız, OP'nin örneğinden farklı değildir. Ben eleman düzeyinde – animuson

+0

evet işte: bir blok elemanı içinde kalmak yüzen zorlamak için hidden': 'taşma kullanın. 'Temizle' iş için yanlış bir araçtır. Søren Løvborg @ – Eonasdan

5

açıklama @animuson Bu sorunun iki ortak çözümü vardır.

  1. (.block, bu durumda bu yüzden) süzülüyor elemanların ebeveyne overflow: hidden ekleyin.
  2. Kullanımı "Clearfix": Burada http://nicolasgallagher.com/micro-clearfix-hack/

Bazı daha fazla bilgi: Eğer zaten onu eklemek kullanılabilir bir öğe olduğunda Is clearfix deprecated?


clear: both kullanmak için iyi bir zamandır. Örneğin

, bir altbilgi ile süzülüyor kolonların sık karşılaşılan durum: http://jsfiddle.net/thirtydot/vhBkM/

+0

1 de bunu neden –

+0

neden 'iş için yanlış clear' edilir? Öğrenme deneyimi için gerçek bir soru. – Eonasdan

+0

@Eonasdan: Çalışıyor, ama daha temiz alternatifler var. 'Taşma: hidden' sadece eklemeyi gerektirir ..' taşma: temizleyerek şamandıraların amacıyla HTML fazladan unsur ilave daha temiz CSS, için hidden'. Clearfix Oysa ayrıca ek eleman ekleyerek daha temiz HTML, sadece fazladan bir sınıfını eklenmesini içerir. – thirtydot

1

Sen hiç <div class="cl"></div> div'leri gerekmez. Sadece blok bloğuna clear: both koyun.

Örnek: http://jsfiddle.net/mKazr/

CSS

.block { 
    clear: both; 
    overflow: hidden; /* If you want to make the div size to the contents and not collapse use this line (from thirtydot answer) */ 
} 
.left { float:left; } 

HTML

<div class="block"> 
    <div class="left">Title 1</div> 
    <div class="left">Value 1</div> 
</div> 
<div class="block"> 
    <div class="left">Title 2</div> 
    <div class="left">Value 2</div> 
</div> 

Düzenleme: eklenen kod

+0

Bu benim de ilk düşüncemdi. Yine de test edilmedi. – diggersworld

İlgili konular