【发布时间】:2017-08-24 18:19:54
【问题描述】:
我将三个 div 堆叠在一起(顶部、中间、底部)。在中间的 div 中,我使用改编自 this fiddle by jfriend00 的 Javascript 进行图像淡入淡出。
中间 div 的位置设置为相对,其中的图像都设置为绝对。然而,发生的是中间 div 与底部 div 重叠。
我大部分时间都读到要包含绝对定位的元素,您必须使用我使用过的相对容器,但是,我不明白为什么我的中间 div 没有在顶部和底部 div 之间很好地流动和堆叠?
如果我向容器添加 583 像素的静态高度和 940 像素的宽度,它会正确流动但没有响应。理想情况下,它需要使用百分比宽度。
这是我尝试过的:
.container {position: relative; font-size: 0; width: 100%;}
/*.container {position: relative; font-size: 0; height: 940px; width: 583px;} this stops the box responding, which isn't what I want */
.slide {
border: none;
opacity: 0;
position: absolute;
width: 100%;
top: 0;
left: 0;
-webkit-transition: opacity 2s linear;
-moz-transition: opacity 2s linear;
-o-transition: opacity 2s linear;
transition: opacity 2s linear;
}
.showMe {opacity: 1;}
.top {display: block;}
.bottom {display: block;}
<div class="top">
This is some test content. Top.
</div>
<div class="container">
<img id="slideimg0" class="slide showMe" src="https://dummyimage.com/940x583/red/fff.jpg">
<img id="slideimg1" class="slide" src="https://dummyimage.com/940x583/000000/fff.jpg">
<img id="slideimg2" class="slide" src="https://dummyimage.com/940x583/6b6b24/fff.jpg">
<img id="slideimg3" class="slide" src="https://dummyimage.com/940x583/fefe03/fff.jpg">
<img id="slideimg4" class="slide" src="https://dummyimage.com/940x583/094fae/fff.jpg">
<img id="slideimg5" class="slide" src="https://dummyimage.com/940x583/fa132e/fff.jpg">
<img id="slideimg6" class="slide" src="https://dummyimage.com/940x583/a90cba/fff.jpg">
</div>
<div class="bottom">
This is some test content. Bottom.
</div>
这是一个fiddle 来演示问题。
非常感谢您对此提供任何帮助。
【问题讨论】:
-
为中间元素添加静态高度,它将开始占用空间并将底部块向下推。中间块的高度为 0,因为其中的绝对元素不占用任何空间。 (绝对元素不占用空间或推动它们周围的任何东西)
-
如果我添加一个 583 的静态高度,它会清除底部 div,但它会在下面创建一个很大的间隙
标签: html css positioning