2013-07-19 22 views
8

Yani bir div içinde üç div var.Ebeveyn div genişliğini doldurmak için çocuk divs genişletin

<div class="parent"> 
<div class="child> Text</div> 
<div class="child">Text</div> 
<div class="child">Text</div> 
</div> 

Ben çocuk div'ler ebeveynin (çocukların kombine genişliği ebeveyn olmalıdır) genişliğini doldurmasını istiyorum. Ancak, bu gerçekleşmiyor, ben kısa düşüyorum. Bunun nedeni, çocuk divlarının içeriklerine göre genişlik ayarlamasıdır.

İstediğim şeyi nasıl alabilirim?

CSS-

.child { 
    background: white; 
    color: #a7a9ac; 
    cursor: pointer; 
    font-size: 15px; 
    border-right: 1px; 
    border-top: 0; 
    border-bottom: 0; 
    border-left: 0; 
    border-style: solid; 
    border-color: @faded-grey; 
    padding-right: 10px; 
    margin: 0 auto; 
    height: 100%; 
} 

.parent { 
    border-top: 1px; 
    border-left: 0; 
    border-bottom: 1; 
    border-style: solid; 
    border-color: @faded-grey; 
    border-right: 0; 
    width: 100%; 
    margin-right: 0px; 
    height: 80px; 

} 
+0

kullandığınız css gönderir misiniz? – cr0atIAN

+0

Birçok yol var, ama ne istediğinize bağlı. İçerikler genişliklerini belirledikten sonra _last_ child div'in kalan alanı doldurmasını ister misiniz? Yoksa eşit genişlikte olmasını istiyor musunuz? Genişlik:% 33 'ile mi? –

+0

set CSS, denenmiş genişliği:% 33, ama bir başka bir üstündeki divları koyar – praks5432

cevap

8

her zaman üç çocuk olacak biliyorsanız, basitçe kullanabilirsiniz:

.parent > .child { 
    float: left; 
    width: 33%; 
} 

.parent { 
    overflow: auto; /*or whatever float wrapping technique you want to use*/ 
} 

sen kaç tane çocuk bilmiyorsanız, size gerekecektir CSS tablolarını, esnek kutuyu kullanın veya belki de metin satırlarıyla satır içi blokları birleştirin: yaslayın.

8

Sen .child CSS kuralına bu üç özelliklerini ekleyebilirsiniz: Son satır sen kutulara sınırlar, dolgu ve marjı eklerken aynı zamanda çalışacaktır emin olur

width:33%; 
float:left;  
box-sizing: border-box; 

.

ONLINE DEMO

Ps: doğrudan ilişkili ancak yukarıda keman düzeltilmiştir ebeveyn için sınır-alt bir hata da var değil. Eğer sigara 0 değerini kullandığınızda birimini belirtmek gerekir: onları tamamen duyarlı olabilmesi için

border-bottom:1px; 
+0

'kutu boyutlandırma: border-box' magic! Gerçekten çok teşekkürler. –

+1

Harika sos! Diğer cevaplara saygı göstererek, bunun en iyi cevap olduğunu düşünüyorum. – Phil

+0

Orta genişlikte bir% 34 yapın, aksi halde kabın sadece% 99'unu doldurursunuz. – Sami

6

Ben elemanlarının sayısında bir varyansı karşılamak için benim çözüm için gerekli.

Bunun için ilginç bir çözüm buldum. Aslında bir masa gibi görüntüler. Her eleman mevcut hisse genişliği, ve bu da çok iyi görüntüler için çalışır: http://jsfiddle.net/8Qa72/6/

.table { 
    display: table; 
    width: 400px; 
} 

.table .row { 
    display: table-row; 
} 

.table .row .cell { 
    display: table-cell; 
    padding: 5px; 
} 

.table .row .cell .contents { 
    background: #444; 
    width: 100%; 
    height: 75px; 
} 
+1

Başka bir ilginç çözüm 'display: inline-block' kullanmaktır, bunu deneyin, bazen hayat kurtarır ;-) –

+0

Nasıl? Ebeveynlerin mevcut genişliğini çocuklar arasında eşit olarak bölmez. Bana bir JSFiddle gösterebilir misin? –

+0

Doğru, benzer bir şey istiyorsanız, her bir alt öğe için bir alt yüzdeyi belirtmelisiniz "Dinamik" onaylı ve "sabit" onaylı denedim http://jsfiddle.net/dBeNv/40/ –

İlgili konular