1
我試圖創建一個「面板」,它分爲兩個等寬的列,第一個包含文本,第二個圖像。圖像很大,應該縮小以覆蓋右側。面板的高度應該跟隨左側文本的數量。flexbox高度根據第一列的內容
這是它應該是什麼樣子,該圖像是使用object-fit: cover;
使其完全填滿它的容器,但我不希望有max-height: 200px;
上.panel。
這是可能以某種方式(最好不使用JavaScript)?
.panel {
display: flex;
flex-direction: row;
justify-content: space-between;
background-color: red;
/* I want this to be flexible based on text in panelText */
/*max-height: 200px;*/
}
.panel .panelText {
padding: 1em;
flex: 1;
width: 50%;
background-color: black;
color: white;
}
.panel .panelImage {
object-fit: cover;
width: 50%;
}
<section class="panel">
<div class="panelText">
<h3>This is a header</h3>
<ul>
<li>One one one</li>
<li>Two two two</li>
<li>Three three three</li>
<li>Four four four</li>
</ul>
<p>Now we're at the end</p>
</div>
<img class="panelImage" src="https://placebear.com/1000/1000" />
</section>
謝謝,這是一個很好的解決方案!但是我不確定它會在文本長到比圖像高度長100%的時候出現。這就是爲什麼我想使用'object-fit:cover',以確保它總是被圖像覆蓋。也許更好的使用背景圖像? – Oscar
然後你唯一的選擇是使用背景圖像。 'object-fit'在這種情況下不起作用,它甚至沒有被所有瀏覽器正確覆蓋。 http://caniuse.com/#search=object-fit 我編輯了我的答案。 – Senthe
謝謝@Senthe,第二個解決方案效果很好。當將佈局摺疊爲'flex-direction:column;'(用於移動設備)時,我添加了一個'height:200px;',以便背景圖像可見。 – Oscar