2013-01-01 18 views
6

Wiem, że wygląda na to pytanie, które było wielokrotnie zadawane, ale nie mogłem znaleźć rozwiązania tej konkretnej sytuacji.Pionowo wyśrodkuj element div o zmiennej wysokości wewnątrz elementu div, który jest 100% wielkości rzutni.

Oto podstawowy szkielet swojego układu:

enter image description here

Zasadniczo mam kilka div z różnych środowisk, które mają szerokość 100% i 100% wysokości okna przeglądarki. Wewnątrz każdego z nich znajduje się inny element div, który przyjmuje 50% szerokości elementu nadrzędnego, ale ma zmienną wysokość w zależności od jego zawartości.

Chciałbym, aby wszystkie te elementy div-a-div były wyrównane w pionie. Teraz przeczytałem, że umieszczenie ekranu: komórka tabeli i pionowe wyrównanie: środkowe na rodzica powinny działać, ale w tym przypadku wydaje się, że po prostu zepsuć. : -/

Mój kod:

<head> 
<style> 
    html, body { 
      height: 100%; 
     } 
     body > div { 
      width: 100%; 
      height: 100%; 
      background-size: cover; 
     } 

     .centered { 
      width: 50%; 
      margin: 0 auto; 
      background: rgba(0,0,0,0.4); 
      padding: 50px 0 30px 0; 
     } 
</style> 
</head> 
     <body> 

      <div id="pic_1"> 
        <div class="centered">content</div> 
      </div> 

      <div id="pic_2"> 
        <div class="centered">content</div> 
      </div> 

      <div id="pic_3"> 
        <div class="centered">content</div> 
      </div> 

     </body> 

Dzięki za pomoc!

+0

możliwy duplikat [Jak pionowo wyśrodkować zawartość o zmiennej wysokości w div?] (Http://stackoverflow.com/questions/59309/how-tovertive-center-content-with-variable-height -within-a-div) – KatieK

Odpowiedz

2

Ustaw element nadrzędny jako display:table; height:100%, a element nadrzędny na display:table-cell; vertical-align:middle.

Zobacz przykład "Metoda 1" here.

Pamiętaj również, że Twój znacznik should not use class="centered"; zamiast tego użyj nazwy klasy semantycznej.

+0

Dzięki za odpowiedź! Działa bardzo dobrze, gdy jest tylko jeden rodzic. W tym przypadku jednak elementy div # pic_1, # pic_2 i # pic_3 są montowane w układzie 3-kolumnowym, z których każdy zajmuje 33% szerokości przeglądarki. Próbowałem ustawić ich szerokość na 100%, ale to nie zadziałało: nadal były w układzie 3-kolumnowym. Tylko tym razem # pic_1 wydawało się mieć szerokość 66%, a pozostałe dwie udostępniły to, co zostało. : -/ –

+0

Jeśli chcesz, aby trzy z nich były ułożone w stos w pionie, potrzebujesz trzech tabel (trzy elementy dziadków), każda z 'wysokością: 100%'. – Phrogz

Powiązane problemy