【发布时间】:2019-01-31 15:08:23
【问题描述】:
我想为左侧一张大图和垂直对齐的两张右侧图片的卡片制作一个 flexbox 网格。一切都很好,并且在 1280 像素的桌面上对齐,但是当图像拉伸为响应式视图时,左侧的图像拉伸得更快,卡片不再垂直对齐。
这里有一个说明问题的代码笔: https://codepen.io/actik/pen/xaZqmG
.wrap {
width: 100%;
max-width: 1280px;
margin: 0 auto;
}
.flex {
display: flex;
box-sizing: border-box;
align-items: flex-start;
}
.row {
flex-flow: row wrap;
}
.col {
flex-flow: column wrap;
}
.structure-100 {
flex: 1 100%;
}
.structure-50 {
flex: 1 50%;
}
.content {
color: #fff;
background-color: #aa0000;
width: 100%;
flex: 1 100%;
}
.element_left {
flex: 1 50%;
padding-right: 15px;
padding-bottom: 30px;
}
.element_right {
flex: 1 50%;
padding-left: 15px;
padding-bottom: 30px;
}
.content-text {
padding: 0 10px;
}
img {
max-width: 100%;
height: auto;
align-self: center;
}
<div class="wrap">
<div class="flex row structure-100">
<div class="flex col structure-50">
<div class="flex element_left">
<div class="content">
<img src="http://www.placebacon.net/625/875/" alt="">
<div class="content-text">
<h2>Card title</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus interdum lacus vitae aliquam ullamcorper.</p>
</div>
</div>
</div>
</div>
<div class="flex col structure-50">
<div class="flex element_right">
<div class="content">
<img src="http://www.placebacon.net/625/360" alt="">
<div class="content-text">
<h2>Card title</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus interdum lacus vitae aliquam ullamcorper.</p>
</div>
</div>
</div>
<div class="flex element_right">
<div class="content">
<img src="http://www.placebacon.net/625/360" alt="">
<div class="content-text">
<h2>Card title</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus interdum lacus vitae aliquam ullamcorper.</p>
</div>
</div>
</div>
</div>
</div>
</div>
我做了很多不同的测试,无法理解这种行为,欢迎任何提示,感谢您的帮助!
编辑:这里 1280px 的版本工作(标题卡在底部对齐)和第二个版本在减小宽度时,2 个图像的底部和标题卡不再对齐。如有必要,我希望红色部分在其底部添加空间,但保持图像和标题对齐。
【问题讨论】:
-
尝试使用
media queries来响应您要创建的断点。 -
我将使用媒体查询来获取手机尺寸,但对于大屏幕,这不是媒体查询问题,flexbox 容器必须拉伸,也许我的问题不清楚?
-
是的,你的问题不是那么清楚。我建议您至少设置 3 个断点:针对手机等小型设备、平板电脑等中型设备、大型设备。
-
感谢您的帮助,好的,我会尝试更清楚:如果您减少代码笔上的浏览器宽度,您会看到当您处于 1280px 容器大小以下时,例如 1100px,左卡不再与右卡的底部对齐。所有红色块的高度都相同,所以这来自图像拉伸,而不是媒体查询问题。这有帮助吗?
-
看看我的回答。
标签: css image flexbox responsive