【发布时间】:2021-05-28 06:14:32
【问题描述】:
所以我想使用 flex-box 制作一些重叠的内容。在宽屏幕上 flex-direction 设置为行,但在较小的屏幕上我想将其更改为列。
body {
min-height: 100vh;
background-color: #d6bd9e;
display: flex;
align-items: center;
justify-content: center;
}
.container {
width: 90%;
max-width: 960px;
display: flex;
justify-content: center;
align-items: center;
}
.left {
border: 2px solid green;
flex: 1 40%;
width: 40%;
height: 30rem;
background: url("https://images.unsplash.com/photo-1512641406448-6574e777bec6?ixlib=rb- 1.2.1&ixid=MXwxMjA3fDB8MHxleHBsb3JlLWZlZWR8MXx8fGVufDB8fHw%3D&w=1000&q=80") no-repeat;
background-size: cover;
border-radius: 8px;
}
.right {
min-height: 20rem;
flex: 1 50%;
background-color: #4d6d52;
color: white;
display: flex;
flex-direction: column;
justify-content: center;
padding: 1.5em;
border-radius: 8px;
margin-left: -4em;
}
@media(max-width: 500px) {
.container {
width: 100%;
flex-direction: column;
}
.left {
width: 90%;
}
.right {
min-height: 14rem;
margin: 0;
margin-top: -6em;
background: transparent;
}
}
<div class="container">
<div class="left"></div>
<div class="right">
<h1 class="heading">
This is a heading!
</h1>
<p class="lorem">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestiae iste nihil, quasi eos aspernatur doloribus quos consequatur animi. In, nemo!
</p>
</div>
</div>
我还将 .right 的背景设置为透明,这样我就可以看到我的 div 仍然存在(我可以看到绿色边框),但背景图像似乎丢失了。 我很确定这与 flex: 1 40%;我一开始就设置了 .left ,因为当我摆脱这个 flex 属性时,它似乎可以工作。但我的问题是: 当我改变 flex-direction 时,为什么 .left div 基本上会塌陷? 我做了一些研究,唯一发现的是我必须为 div 设置一个高度,但正如你在我的代码中看到的那样,我的 .left 已经有一个高度。所以我确定这与我的 .left 的 flex 属性有关。
【问题讨论】:
标签: html css flexbox media-queries