Tenho um flexbox com duas colunas. O conteúdo da esquerda é geralmente mais alto que o da direita, e quero renderizar o conteúdo da direita para que fique centralizado.
No entanto, a esquerda tem conteúdo que pode ser expandido, e eu gostaria de manter o conteúdo da direita onde ele está quando ele se expande, em vez de permanecer centralizado.
Até agora, tenho a primeira parte, mas a parte direita cai para ficar centralizada quando a esquerda se expande.
.host {
width: 500px;
padding: 5px;
display: flex;
flex-direction: row;
align-items: center;
background: yellow;
}
.left-panel {
width: 50%;
margin: 5px;
flex-direction: column;
background: pink;
}
.summary {
margin: 5px;
background: green;
}
.expand-list {
margin: 5px;
background: skyblue
}
.right-panel {
width: 50%;
margin: 5px;
display: flex;
flex-direction: row;
background: blue;
}
.image {
margin: 5px;
background: red;
}
button {
margin: auto 5px;
width: 100px;
}
<div class="host">
<div class="left-panel">
<div class="summary">
Here is a long paragraph of text that I need to display.
It takes up most of the container, but there's an expander
below that will make this text take up less because the
expander will take up more when expanded.
</div>
<details class="expand-list">
<summary>click me</summary>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
<li>Seven</li>
</ul>
</details>
</div>
<div class="right-panel">
<div class="image">
<p>
Don't let this text fool you;
</p>
<p>
it's actually an image.
</p>
</div>
<button>
Do it
</button>
</div>
</div>
Não consigo definir explicitamente a margem superior no conteúdo direito porque o conteúdo esquerdo não tem uma altura definida.
Como faço para que o conteúdo da direita permaneça quando o da esquerda se expande? Uma solução somente CSS é preferível.