SORU
28 Temmuz 2011, PERŞEMBE


Sıvı eşit aralıklı DİVs ile genişliği

Sıvı genişliği kapsayıcı bir DİV var.

4 DİVs var bunun içinde, tüm 300px x 250px...

<div id="container">
   <div class="box1"> </div>
   <div class="box2"> </div>
   <div class="box3"> </div>
   <div class="box4"> </div>
</div>

Olmasını istediğim şey sol, kutu 4 kutu 2 ve 3 aralıklı süzülüyor onlar arasında eşit bir şekilde yüzdüğü için kutu 1. Boşluğu sıvı tarayıcı daha küçük olduğu için bu alanı daha küçük olur da bu kadar iyi olmak istiyorum.

enter image description here

CEVAP
30 Temmuz 2011, CUMARTESİ


Bkz:http://jsfiddle.net/thirtydot/EDp8R/

  • Bu çalışıyorIE6 ve tüm modern tarayıcılar!
  • Sadece daha kolay çalışmak için yapmak istediğiniz ölçüleri yarı yarıya yaptım.
  • text-align: justify .stretch ile birlikte konumlandırma ilgileniyor.
  • display:inline-block; *display:inline; zoom:1 IE6/7, see here inline-block düzeltmeler.
  • font-size: 0; line-height: 0 IE6 ufak bir sorunu giderir.

HTML:

<div id="container">
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
    <div class="box4"></div>
    <span class="stretch"></span>
</div>

CSS:

#container {
    border: 2px dashed #444;
    height: 125px;

    text-align: justify;
    -ms-text-justify: distribute-all-lines;
    text-justify: distribute-all-lines;

    /* just for demo */
    min-width: 612px;
}

.box1, .box2, .box3, .box4 {
    width: 150px;
    height: 125px;
    vertical-align: top;
    display: inline-block;
    *display: inline;
    zoom: 1
}
.stretch {
    width: 100%;
    display: inline-block;
    font-size: 0;
    line-height: 0
}

.box1, .box3 {
    background: #ccc
}
.box2, .box4 {
    background: #0ff
}

span ekstra (.stretch) :after ile değiştirilebilir.

Buhala çalışıyorhepsi aynı yukarıdaki çözüm gibi tarayıcılar. :after önemi yok yani IE6/7, ama neyse distribute-all-lines kullanıyorlar işe yaramaz.

Bkz:http://jsfiddle.net/thirtydot/EDp8R/3/

Var :after küçük bir dezavantajı: son satır mükemmel Safari çalışması için, HTML boşluk ile dikkatli olmak zorunda.

Özellikle, bu işe yaramaz:

<div id="container">
    ..
    <div class="box3"></div>
    <div class="box4"></div>
</div>

Ve bu

<div id="container">
    ..
    <div class="box3"></div>
    <div class="box4"></div></div>

Değiştirerek her biri için boxN bir sınıf eklemeden divs çocuğun herhangi bir rasgele sayı için bu kullanabilirsiniz

.box1, .box2, .box3, .box4 { ...

için

#container > div { ...

Bu #container div ve aşağıda başka kimse ilk çocuk herhangi bir div seçer. Arka plan renkleri yaygınlaştırmak, sadece 9 ve diğer modern tarayıcılarda desteklenen olsa da CSS3 nth-order selector: kullanabilirsiniz

.box1, .box3 { ...

olur:

#container > div:nth-child(odd) { ...

here bkzjsfiddle bir örnek.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • androidandme

    androidandme

    10 Mart 2009
  • ASUS

    ASUS

    22 EKİM 2005
  • Joshua Kywn

    Joshua Kywn

    17 Mayıs 2010