【发布时间】:2019-06-27 16:50:24
【问题描述】:
我想在一个固定高度的 flexbox 容器中显示一些包含图像的 div 和两个带有文本的 div。 这些 div 代表带有专辑封面、歌曲名称和艺术家姓名的曲目。
像这样:
<div class="flex-container">
<div class="track">
<img class="track--image" src="http://lorempixel.com/400/400/">
<div class="track--artist-name">Artist</div>
<div class="track--track-name">Song</div>
</div>
<div class="track">
.
.
.
</div>
CSS:
.flex-container {
display: flex;
width: 100%;
height: 100px;
background-color: lightblue;
}
.track {
border: 1px solid black;
text-align: center;
max-width: 9rem;
color: black;
}
.track--image {
width: 100%;
border-radius: 50%;
}
.track--name,
.track--artist-name {
width: 100%;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
问题是图像的宽度为 100% 以适应其父 div。但这也意味着它溢出了它的父级。 track div 中的两个 div 也会被推到其父级之外。
如何防止图像对于其父 div 太大,以便图像和两个 div 适合父级?
我还准备了一个codepen来更好地描述问题:https://codepen.io/anon/pen/YBQGRb
编辑:
我的期望是这样的: 如您所见,浅灰色容器是我的 flex-container,我想拥有我的轨道 div。即使 flex-container 的高度发生变化,图像和这两个文本也应该适合。
【问题讨论】:
-
在
.track .track--image中使用height: 100%代替width: 100%怎么样? -
然后图像适合其父级,但两个 div
.track--artist-name和.track--name溢出它。
标签: css image flexbox responsive