如何让 flexbox 容器包围绝对定位的内容?
How do I make a flexbox container surround absolutely-positioned content?
我在一个网站上工作,我想在左侧显示幻灯片,在右侧显示一些描述幻灯片的文字。目前,我正在为幻灯片放映使用 flexbox 和一些绝对定位的图像。我还在我的内容周围使用 div 来提供框架。但是,div 不会环绕元素的整个高度,使图像溢出框架。是否可以让 div 完全环绕幻灯片图像,而只在 CSS 中提供最大和最小宽度?
这是我目前拥有的:
HTML:
<div class="container">
<div class="content">
<div class="slides">
<img src="http://placehold.it/2048x1365">
<img src="http://placehold.it/2048x1365">
</div>
</div>
<div class="content">
<p>This is some content.</p>
<p>This is some more content.</p>
<p>This is some more content.</p>
<p>This is some more content.</p>
</div>
</div>
CSS:
.container {
display: flex;
justify-content: center;
margin: 30px;
}
.content {
background: red;
flex: auto;
flex-direction: column;
min-width: 30em;
max-width: 38em;
padding: 10px;
margin: 5px;
}
.slides {
position: relative;
width: 100%;
height: 100%;
}
.content img {
width: 100%;
height: auto;
position: absolute;
display: block;
}
jsfiddle: http://jsfiddle.net/vuz9wzx5/2/
图像的 position: absolute
将布局从元素流中拉出,从而扰乱了布局,因此您无法按照自己的方式利用 flexbox。
我会:
- 或者仅以编程方式在图像上显示
- 使用 CSS
仅显示第一张图片
我对选项二做了一些修改和提议:
http://jsfiddle.net/vuz9wzx5/2/
更新
如果你需要对图片进行绝对定位,你需要固定图片容器的高度,如此fiddle:
我在一个网站上工作,我想在左侧显示幻灯片,在右侧显示一些描述幻灯片的文字。目前,我正在为幻灯片放映使用 flexbox 和一些绝对定位的图像。我还在我的内容周围使用 div 来提供框架。但是,div 不会环绕元素的整个高度,使图像溢出框架。是否可以让 div 完全环绕幻灯片图像,而只在 CSS 中提供最大和最小宽度?
这是我目前拥有的:
HTML:
<div class="container">
<div class="content">
<div class="slides">
<img src="http://placehold.it/2048x1365">
<img src="http://placehold.it/2048x1365">
</div>
</div>
<div class="content">
<p>This is some content.</p>
<p>This is some more content.</p>
<p>This is some more content.</p>
<p>This is some more content.</p>
</div>
</div>
CSS:
.container {
display: flex;
justify-content: center;
margin: 30px;
}
.content {
background: red;
flex: auto;
flex-direction: column;
min-width: 30em;
max-width: 38em;
padding: 10px;
margin: 5px;
}
.slides {
position: relative;
width: 100%;
height: 100%;
}
.content img {
width: 100%;
height: auto;
position: absolute;
display: block;
}
jsfiddle: http://jsfiddle.net/vuz9wzx5/2/
图像的 position: absolute
将布局从元素流中拉出,从而扰乱了布局,因此您无法按照自己的方式利用 flexbox。
我会:
- 或者仅以编程方式在图像上显示
- 使用 CSS 仅显示第一张图片
我对选项二做了一些修改和提议: http://jsfiddle.net/vuz9wzx5/2/
更新
如果你需要对图片进行绝对定位,你需要固定图片容器的高度,如此fiddle: