Üst div'in yüksekliğini belirtmeden alt div'i üst div'in yüksekliğinin %100'ü olmaya nasıl zorlayabilirim?

Aşağıdaki yapıya sahip bir sitem var:

<div id="header"></div>

<div id="main">
  <div id="navigation"></div>
  <div id="content"></div>
</div>

<div id="footer"></div>

Navigasyon solda ve içerik div'i sağdadır. İçerik div'i için bilgiler PHP aracılığıyla çekilir, bu nedenle her seferinde farklıdır.

Hangi sayfa yüklenmiş olursa olsun, yüksekliği içerik div'inin yüksekliği ile aynı olacak şekilde navigasyonu dikey olarak nasıl ölçeklendirebilirim?

Çözüm

NOT: Bu yanıt, Flexbox standardını desteklemeyen eski tarayıcılar için geçerlidir. Modern bir yaklaşım için bkz: https://stackoverflow.com/a/23300532/1155721


Tarayıcılar Arası CSS ile ve Hack Kullanmadan Eşit Yükseklikte Sütunlar]1 sayfasına göz atmanızı öneririm.

Temel olarak, bunu CSS ile tarayıcı uyumlu bir şekilde yapmak önemsiz değildir (ancak tablolarla önemsizdir), bu nedenle kendinize uygun bir önceden paketlenmiş çözüm bulun.

Ayrıca, cevap %100 yükseklik mi yoksa eşit yükseklik mi istediğinize göre değişir. Genellikle eşit yüksekliktir. Eğer %100 yükseklik istiyorsanız cevap biraz farklıdır.

Yorumlar (2)

Beklenmedik şekilde kısa bir içerik div'i olması durumunda navigasyon div'inin kırpılmasını sorun etmiyorsanız, en azından bir kolay yol var:

#main {
position: relative;
}

#main #navigation {
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 10em; /* or whatever */
}

#main #content {
margin: 0;
margin-left: 10em; /* or whatever width you set for #navigation */
}

Diğer yandan faux-columns tekniği hakkındaki makalesine bağlantı.

Yorumlar (4)

[Başka bir cevapta Dmity'nin Less koduna atıfta bulunarak] Bunun bir tür "pseudo-code" olduğunu tahmin ediyorum?

Anladığım kadarıyla sahte sütun tekniğini kullanmayı deneyin, bu işinizi görecektir.

http://www.alistapart.com/articles/fauxcolumns/

Umarım bu yardımcı olur :)

Yorumlar (2)