gpt4 book ai didi

html - 带有图像的 Flexbox 网格 - 保持纵横比/比例

转载 作者:行者123 更新时间:2023-11-28 01:00:33 25 4
gpt4 key购买 nike

我正在尝试使用 flexbox 来布局如下内容:

 -- ------ --
| | | |
|--| |--|
| | | |
-- ------ --

每个 Angular “框”内都有一个 img,其纵横比为 1:1(正方形)。中间的“框”是 3:2。

无论出于何种原因,问题是 Angular 框和中心框的高度大于其中响应式 img 的高度,我试图让它们完美对齐。

如何让 flex 元素正确排列?

这是一个代码笔:https://codepen.io/codybarr/pen/zNgpVK

编辑:将 display: flex 添加到 .container .item 修复了 Firefox 中的问题,但不是 Chrome/Safari。现在图像拉伸(stretch)到它们的全分辨率高度......很奇怪......

img {
max-width: 100%;
}

@media (min-width: 700px) {
.main {
display: flex;
flex-direction: row;
background-color: orange;
}
.container {
display: flex;
flex-direction: column;
}
.container.second-column {
flex: 1 0 60%;
}
.container .item {
display: flex;
}
.container.second-column .item {}
.container.first-column .item:nth-child(1) {
background-color: blue;
}
.container.first-column .item:nth-child(2) {
background-color: yellow;
}
.container.third-column .item:nth-child(1) {
background-color: red;
}
.container.third-column .item:nth-child(2) {
background-color: green;
}
}
<head>
<title>Flex Testing</title>
</head>

<body>
<h1>Flex Test!</h1>
<div class="main">
<div class="container first-column">
<div class="item">
<img src="http://i-cdn.phonearena.com/images/article/90741-image/Google-touts-advanced-recipe-search-in-mobile-app.jpg" />
</div>
<div class="item">
<img src="https://lh3.googleusercontent.com/-cigJW9TQSRU/AAAAAAAAAAI/AAAAAAAAABg/Pg3e9ogcsHU/s640/photo.jpg" />
</div>
</div>
<div class="container second-column">
<div class="item">
<img src="https://www.inetsolutions.org/wp-content/uploads/2016/01/Capital-Letters-in-URLs-Do-Not-Influence-Google-Rankings.png" />
</div>
</div>
<div class="container third-column">
<div class="item">
<img src="http://www.sociallyawareblog.com/files/2016/12/GettyImages-610773752_small.jpg" />
</div>
<div class="item">
<img src="https://s-media-cache-ak0.pinimg.com/564x/b1/e2/db/b1e2dbe6c6b547a2ebc53a49fc3ffa8c.jpg" />
</div>
</div>
</div>
</body>

最佳答案

flex 容器的初始设置是align-items: stretch。这意味着 flex 元素将默认展开以覆盖容器横轴的整个长度。

考虑使用 align-items: flex-start 覆盖默认值。

 container .item {
display: flex;
align-items: flex-start; /* new */
}

revised codepen

关于html - 带有图像的 Flexbox 网格 - 保持纵横比/比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42372275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com