2016-04-28 11 views
0

Ich habe Probleme, dieses Setup zu stylen. Die #container sollte genau die height der viewport sein, die #caption sollte take as much height as it needs sein, und die img in #image sollte fill the remaining height (unter Beibehaltung des Seitenverhältnisses) sein. Nie sollte das das Viewport height überschreiten.Zwei divs füllen die Höhe des Ansichtsfensters dynamisch.

<div id="container"> 
    <div id="image"> 
    <img src="my-image.jpg" alt="my-image"> 
    </div> 
    <div id="caption"> 
    <p> 
     Some info about this image.<br> 
     Sometimes this could be two lines.<br> 
     Maybe even three. 
    </p> 
    </div> 
</div> 

Hier ist ein Beispiel dafür, wie diese dynamisch funktionieren würde:

enter image description here

Irgendwelche Vorschläge? Ich habe mit Flex und Tabellen auch selbst gegriffen, aber ohne Erfolg, endet die Seite immer über Ansichtsfenster height.

Antwort

2

können Sie flexbox für die

verwenden und Sie können einige Abfragen Medien benötigen.

body { 
 
    margin: 0 
 
} 
 
#container { 
 
    display: flex; 
 
    flex-direction: column; 
 
    height: 100vh 
 
} 
 
#caption { 
 
    flex: 1; 
 
    background: red 
 
} 
 
img { 
 
    display: block; 
 
    margin: auto 
 
}
<div id="container"> 
 
    <div id="image"> 
 
    <img src="//lorempixel.com/300/500" alt="my-image"> 
 
    </div> 
 
    <div id="caption"> 
 
    <p> 
 
     Some info about this image. 
 
     <br>Sometimes this could be two lines. 
 
     <br>Maybe even three. 
 
     <br> 
 
    </p> 
 
    </div> 
 
</div>

+0

Dies ist näher, aber das Bild sitzt jetzt die Beschriftung hinter. Ich brauche es dynamisch kleiner zu skalieren, um die Beschriftung nicht zu stören. –

+0

in meinem Ausschnitt das img geht nie hinter die Beschriftung, sie sind Geschwister – dippas

+0

Sollte das Bild automatisch skalieren, um den Rest der Höhe zu füllen? Es scheint wie 'img {display: block; margin: auto} 'ist nicht genug, um dies zu erreichen –

Verwandte Themen